diff options
author | Ryan Ofsky <ryan@ofsky.org> | 2024-05-13 16:12:18 -0400 |
---|---|---|
committer | Ryan Ofsky <ryan@ofsky.org> | 2024-05-13 16:15:53 -0400 |
commit | 0503cbea9aab47ec0a87d34611e5453158727169 (patch) | |
tree | c0e7ab9f64cd7ffee224d23efb8b4c0ff211db4c | |
parent | ff8c606cf1eaefd0eab9f144561120ae6c5a498f (diff) | |
parent | b77bad309e92f176f340598eec056eb7bff86f5f (diff) |
Merge bitcoin/bitcoin#30094: rpc: move UniValue in blockToJSON
b77bad309e92f176f340598eec056eb7bff86f5f rpc: move UniValue in blockToJSON (willcl-ark)
Pull request description:
Fixes: #24542
Fixes: #30052
Without explicitly declaring the move, these `UniValues` get copied, causing increased memory usage. Fix this by explicitly moving the `UniValue` objects.
Used by `rest_block` and `getblock` RPC.
ACKs for top commit:
maflcko:
review ACK b77bad309e92f176f340598eec056eb7bff86f5f
ismaelsadeeq:
ACK b77bad309e92f176f340598eec056eb7bff86f5f
TheCharlatan:
ACK b77bad309e92f176f340598eec056eb7bff86f5f
theuni:
utACK b77bad309e92f176f340598eec056eb7bff86f5f
hebasto:
ACK b77bad309e92f176f340598eec056eb7bff86f5f, I have reviewed the code and it looks OK.
BrandonOdiwuor:
ACK b77bad309e92f176f340598eec056eb7bff86f5f
Tree-SHA512: 767608331040f9cfe5c3568ed0e3c338920633472a1a50d4bbb47d1dc69d2bb11466d611f050ac8ad1a894b47fe1ea4d968cf34cbd44d4bb8d479fc5c7475f6d
-rw-r--r-- | src/rpc/blockchain.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index c9997ae063..1abaeafb2a 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -188,12 +188,12 @@ UniValue blockToJSON(BlockManager& blockman, const CBlock& block, const CBlockIn const CTxUndo* txundo = (have_undo && i > 0) ? &blockUndo.vtxundo.at(i - 1) : nullptr; UniValue objTx(UniValue::VOBJ); TxToUniv(*tx, /*block_hash=*/uint256(), /*entry=*/objTx, /*include_hex=*/true, txundo, verbosity); - txs.push_back(objTx); + txs.push_back(std::move(objTx)); } break; } - result.pushKV("tx", txs); + result.pushKV("tx", std::move(txs)); return result; } |