protocol: add calls to reserve where appropriate

This commit is contained in:
moneromooo-monero 2020-12-10 20:36:46 +00:00
parent b7425c14c8
commit dd5e689533
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -546,6 +546,7 @@ namespace cryptonote
} }
std::vector<tx_blob_entry> have_tx; std::vector<tx_blob_entry> have_tx;
have_tx.reserve(new_block.tx_hashes.size());
// Instead of requesting missing transactions by hash like BTC, // Instead of requesting missing transactions by hash like BTC,
// we do it by index (thanks to a suggestion from moneromooo) because // we do it by index (thanks to a suggestion from moneromooo) because
@ -554,6 +555,7 @@ namespace cryptonote
// Also, remember to pepper some whitespace changes around to bother // Also, remember to pepper some whitespace changes around to bother
// moneromooo ... only because I <3 him. // moneromooo ... only because I <3 him.
std::vector<uint64_t> need_tx_indices; std::vector<uint64_t> need_tx_indices;
need_tx_indices.reserve(new_block.tx_hashes.size());
transaction tx; transaction tx;
crypto::hash tx_hash; crypto::hash tx_hash;
@ -825,6 +827,7 @@ namespace cryptonote
} }
std::vector<crypto::hash> txids; std::vector<crypto::hash> txids;
txids.reserve(b.tx_hashes.size());
NOTIFY_NEW_FLUFFY_BLOCK::request fluffy_response; NOTIFY_NEW_FLUFFY_BLOCK::request fluffy_response;
fluffy_response.b.block = t_serializable_object_to_blob(b); fluffy_response.b.block = t_serializable_object_to_blob(b);
fluffy_response.current_blockchain_height = arg.current_blockchain_height; fluffy_response.current_blockchain_height = arg.current_blockchain_height;
@ -2149,6 +2152,7 @@ skip:
if (span.second > 0) if (span.second > 0)
{ {
is_next = true; is_next = true;
req.blocks.reserve(hashes.size());
for (const auto &hash: hashes) for (const auto &hash: hashes)
{ {
req.blocks.push_back(hash); req.blocks.push_back(hash);
@ -2197,6 +2201,7 @@ skip:
if (span.second > 0) if (span.second > 0)
{ {
is_next = true; is_next = true;
req.blocks.reserve(hashes.size());
for (const auto &hash: hashes) for (const auto &hash: hashes)
{ {
req.blocks.push_back(hash); req.blocks.push_back(hash);
@ -2230,6 +2235,7 @@ skip:
return false; return false;
} }
req.blocks.reserve(req.blocks.size() + span.second);
for (size_t n = 0; n < span.second; ++n) for (size_t n = 0; n < span.second; ++n)
{ {
req.blocks.push_back(context.m_needed_objects[n].first); req.blocks.push_back(context.m_needed_objects[n].first);
@ -2531,6 +2537,7 @@ skip:
} }
context.m_needed_objects.clear(); context.m_needed_objects.clear();
context.m_needed_objects.reserve(arg.m_block_ids.size());
uint64_t added = 0; uint64_t added = 0;
for (size_t i = 0; i < arg.m_block_ids.size(); ++i) for (size_t i = 0; i < arg.m_block_ids.size(); ++i)
{ {