diff options
author | Andrew Chow <github@achow101.com> | 2023-11-28 14:38:31 -0500 |
---|---|---|
committer | Andrew Chow <github@achow101.com> | 2023-11-28 14:45:23 -0500 |
commit | 535424a10b4462a813b9797f3c607b97a0ca9b19 (patch) | |
tree | fe59495fa0464554aa742614d0109dd0eb2a149b /src/test | |
parent | 30a055782908702c012bdd5f6a6d41458bf22dfa (diff) | |
parent | 705e3f1de00bf30d728addd52a790a139d948e32 (diff) |
Merge bitcoin/bitcoin#28903: refactor: Make CTxMemPoolEntry only explicitly copyable
705e3f1de00bf30d728addd52a790a139d948e32 refactor: Make CTxMemPoolEntry only explicitly copyable (TheCharlatan)
Pull request description:
This has the goal of prohibiting users from accidentally creating runtime failures, e.g. by interacting with iterator_to with a copied entry. This was brought up here: https://github.com/bitcoin/bitcoin/pull/28886#issuecomment-1814794954.
CTxMemPoolEntry is already implicitly not move-constructable. So be explicit about this and use a std::list to collect the values in the policy_estimator fuzz test instead of a std::vector.
ACKs for top commit:
maflcko:
ACK 705e3f1de00bf30d728addd52a790a139d948e32 🌯
achow101:
ACK 705e3f1de00bf30d728addd52a790a139d948e32
ajtowns:
ACK 705e3f1de00bf30d728addd52a790a139d948e32
ismaelsadeeq:
ACK 705e3f1de00bf30d728addd52a790a139d948e32
Tree-SHA512: 62056905c679c919d00f9ae065ed66ac986e7e7062015aea542843d8deecda57104d7a68d002f7b20afa3164f8e9215d2d2d002c167224129540e3b1bd0712cc
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/fuzz/policy_estimator.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/test/fuzz/policy_estimator.cpp b/src/test/fuzz/policy_estimator.cpp index 220799be41..d421eed9ff 100644 --- a/src/test/fuzz/policy_estimator.cpp +++ b/src/test/fuzz/policy_estimator.cpp @@ -50,7 +50,7 @@ FUZZ_TARGET(policy_estimator, .init = initialize_policy_estimator) } }, [&] { - std::vector<CTxMemPoolEntry> mempool_entries; + std::list<CTxMemPoolEntry> mempool_entries; LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) { const std::optional<CMutableTransaction> mtx = ConsumeDeserializable<CMutableTransaction>(fuzzed_data_provider, TX_WITH_WITNESS); @@ -59,7 +59,7 @@ FUZZ_TARGET(policy_estimator, .init = initialize_policy_estimator) break; } const CTransaction tx{*mtx}; - mempool_entries.push_back(ConsumeTxMemPoolEntry(fuzzed_data_provider, tx)); + mempool_entries.emplace_back(CTxMemPoolEntry::ExplicitCopy, ConsumeTxMemPoolEntry(fuzzed_data_provider, tx)); } std::vector<const CTxMemPoolEntry*> ptrs; ptrs.reserve(mempool_entries.size()); |