diff options
author | Andrew Chow <achow101-github@achow101.com> | 2022-08-17 17:46:27 -0400 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2022-08-17 17:57:33 -0400 |
commit | a8f69541ad53a76d5f69044ba829069d225a4af1 (patch) | |
tree | c0501ff34e5107ca7e4ef9bcc02ad3762b9cea18 /src/test | |
parent | a75b7796b7b37be0d313d10a2ed683534ce7e95a (diff) | |
parent | fa3f15f2dd94ae597a66037f5928fe4e90fe099d (diff) | |
download | bitcoin-a8f69541ad53a76d5f69044ba829069d225a4af1.tar.xz |
Merge bitcoin/bitcoin#25748: refactor: Avoid copies in FlatSigningProvider Merge
fa3f15f2dd94ae597a66037f5928fe4e90fe099d refactor: Avoid copies in FlatSigningProvider Merge (MacroFake)
Pull request description:
`Merge` will create several copies unconditionally:
* To initialize the args `a`, and `b`
* `ret`, which is the merge of the two args
So change the code to let the caller decide how many copies they need/want:
* `a`, and `b` must be explicitly moved or copied by the caller
* `ret` is no longer needed, as `a` can be used for it in place "for free"
ACKs for top commit:
achow101:
ACK fa3f15f2dd94ae597a66037f5928fe4e90fe099d
furszy:
looks good, ACK fa3f15f2
ryanofsky:
Code review ACK fa3f15f2dd94ae597a66037f5928fe4e90fe099d. Confirmed that all the places `std::move` was added the argument actually did seem safe to move from. Compiler enforces that temporary copies are explicitly created in non-move cases.
Tree-SHA512: 7c027ccdea1549cd9f37403344ecbb76e008adf545f6ce52996bf95e89eb7dc89af6cb31435a9289d6f2eea1c416961b2fb96348bc8a211d550728f1d99ac49c
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/descriptor_tests.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/test/descriptor_tests.cpp b/src/test/descriptor_tests.cpp index 1eb4b373b4..d9503d7624 100644 --- a/src/test/descriptor_tests.cpp +++ b/src/test/descriptor_tests.cpp @@ -312,7 +312,7 @@ void DoCheck(const std::string& prv, const std::string& pub, const std::string& txdata.Init(spend, std::move(utxos), /*force=*/true); MutableTransactionSignatureCreator creator{spend, 0, CAmount{0}, &txdata, SIGHASH_DEFAULT}; SignatureData sigdata; - BOOST_CHECK_MESSAGE(ProduceSignature(Merge(keys_priv, script_provider), creator, spks[n], sigdata), prv); + BOOST_CHECK_MESSAGE(ProduceSignature(FlatSigningProvider{keys_priv}.Merge(FlatSigningProvider{script_provider}), creator, spks[n], sigdata), prv); } /* Infer a descriptor from the generated script, and verify its solvability and that it roundtrips. */ |