mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-20 07:09:15 +01:00
24ed820d4fmerkle: remove unused `mutated` arg from `BlockWitnessMerkleRoot` (Lőrinc)63d640fa6amerkle: remove unused `proot` and `pmutated` args from `MerkleComputation` (Lőrinc)be270551dfmerkle: migrate `path` arg of `MerkleComputation` to a reference (Lőrinc) Pull request description: ### Summary Simplifies merkle tree computation by removing dead code found through coverage analysis (following up on #33768 and #33786). ### History #### BlockWitnessMerkleRoot Original `MerkleComputation` was added inee60e5625b (diff-706988c23877f8a557484053887f932b2cafb3b5998b50497ce7ff8118ac85a3R131)where it was called for either `&hash, mutated` or `position, &ret` args. In1f0e7ca09c (diff-706988c23877f8a557484053887f932b2cafb3b5998b50497ce7ff8118ac85a3L135-L165)the first usage was inlined in `ComputeMerkleRoot`, leaving the `proot` and , `pmutated` values unused in `MerkleComputation`. Later in4defdfab94the method was moved to test and in63d6ad7c89 (diff-706988c23877f8a557484053887f932b2cafb3b5998b50497ce7ff8118ac85a3R87-R95)was restored to the code, though with unused parameters again. #### BlockWitnessMerkleRoot `BlockWitnessMerkleRoot` was introduced in8b49040854where it was already called with `NULL`8b49040854 (diff-34d21af3c614ea3cee120df276c9c4ae95053830d7f1d3deaf009a4625409ad2R3509)or an unused dummy8b49040854 (diff-34d21af3c614ea3cee120df276c9c4ae95053830d7f1d3deaf009a4625409ad2R3598-R3599)for the `mutated` parameter. ### Fixes #### BlockWitnessMerkleRoot - Converts `path` parameter from pointer to reference (always non-null at call site) - Removes `proot` and `pmutated` parameters (always `nullptr` at call site) #### BlockWitnessMerkleRoot - Removes unused `mutated` output parameter (always passed as `nullptr`) The change is a refactor that shouldn't introduce *any* behavioral change, only remove dead code, leftovers from previous refactors. ### Coverage proof https://maflcko.github.io/b-c-cov/total.coverage/src/consensus/merkle.cpp.gcov.html ACKs for top commit: optout21: utACK24ed820d4fSjors: utACK24ed820d4fachow101: ACK24ed820d4fsedited: ACK24ed820d4fhodlinator: ACK24ed820d4fTree-SHA512: 6960411304631bc381a3db7a682f6b6ba51bd58936ca85aa237c69a9109265b736b22ec4d891875bddfcbe8517bd3f014c44a4b387942eee4b01029c91ec93e1