mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-05 20:49:19 +01:00
Merge bitcoin/bitcoin#33786: script: remove dead code in CountWitnessSigOps
24bcad3d4drefactor: remove dead code in `CountWitnessSigOps` (Lőrinc) Pull request description: Found while reviewing #32840 The `nullptr` witness path was dead in normal code paths: replacing it with reference enables us deleting unreachable logic. Code coverage proof: https://maflcko.github.io/b-c-cov/total.coverage/src/script/interpreter.cpp.gcov.html#L2135 ACKs for top commit: kevkevinpal: ACK [24bcad3](24bcad3d4d) maflcko: review ACK24bcad3d4d🐏 darosior: Neat. utACK24bcad3d4d. stickies-v: ACK24bcad3d4dTree-SHA512: 92c87e431f06a15d8eeb02e20e9154b272c4586ddacf77c8d83783091485fb82c24ecbd711db7043a92cf6169746db24ad46a5904d694aea9d3c3aa96da725f0
This commit is contained in:
@@ -2136,10 +2136,8 @@ size_t static WitnessSigOps(int witversion, const std::vector<unsigned char>& wi
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t CountWitnessSigOps(const CScript& scriptSig, const CScript& scriptPubKey, const CScriptWitness* witness, script_verify_flags flags)
|
||||
size_t CountWitnessSigOps(const CScript& scriptSig, const CScript& scriptPubKey, const CScriptWitness& witness, script_verify_flags flags)
|
||||
{
|
||||
static const CScriptWitness witnessEmpty;
|
||||
|
||||
if ((flags & SCRIPT_VERIFY_WITNESS) == 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -2148,7 +2146,7 @@ size_t CountWitnessSigOps(const CScript& scriptSig, const CScript& scriptPubKey,
|
||||
int witnessversion;
|
||||
std::vector<unsigned char> witnessprogram;
|
||||
if (scriptPubKey.IsWitnessProgram(witnessversion, witnessprogram)) {
|
||||
return WitnessSigOps(witnessversion, witnessprogram, witness ? *witness : witnessEmpty);
|
||||
return WitnessSigOps(witnessversion, witnessprogram, witness);
|
||||
}
|
||||
|
||||
if (scriptPubKey.IsPayToScriptHash() && scriptSig.IsPushOnly()) {
|
||||
@@ -2160,7 +2158,7 @@ size_t CountWitnessSigOps(const CScript& scriptSig, const CScript& scriptPubKey,
|
||||
}
|
||||
CScript subscript(data.begin(), data.end());
|
||||
if (subscript.IsWitnessProgram(witnessversion, witnessprogram)) {
|
||||
return WitnessSigOps(witnessversion, witnessprogram, witness ? *witness : witnessEmpty);
|
||||
return WitnessSigOps(witnessversion, witnessprogram, witness);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user