Merge bitcoin/bitcoin#24102: mempool: Run coin.IsSpent only once in a row

fa2bcc4e42e7fed61727b3de4019e9702d4090ce Run coin.IsSpent only once in a row (MarcoFalke)

Pull request description:

  Follow-up to commit 64e4963c635ec3a73a5fa3f32f6ec08e70609f60 and https://github.com/bitcoin/bitcoin/pull/23976#discussion_r787758193

ACKs for top commit:
  glozow:
    utACK fa2bcc4e42e7fed61727b3de4019e9702d4090ce, agree the assertion is sufficient
  theStack:
    Code-review ACK fa2bcc4e42e7fed61727b3de4019e9702d4090ce
  w0xlt:
    crACK fa2bcc4e42
  shaavan:
    Code Review ACK fa2bcc4e42e7fed61727b3de4019e9702d4090ce
  brunoerg:
    crACK fa2bcc4e42e7fed61727b3de4019e9702d4090ce

Tree-SHA512: 3be9d6b313bf6bb835f031826c81777b4659118d839001d084e72462391cb64ba81d06a5e07fd21fcfb709a71b08892b23212a98604ce8481da489476b72f072
This commit is contained in:
MarcoFalke 2022-01-24 12:43:19 +01:00 committed by pasta
parent acbf718b57
commit a1691c7c2a
No known key found for this signature in database
GPG Key ID: E2F3D7916E722D38

View File

@ -408,10 +408,10 @@ void CChainState::MaybeUpdateMempoolForReorg(
auto it2 = m_mempool->mapTx.find(txin.prevout.hash);
if (it2 != m_mempool->mapTx.end())
continue;
const Coin &coin = CoinsTip().AccessCoin(txin.prevout);
const Coin& coin{CoinsTip().AccessCoin(txin.prevout)};
assert(!coin.IsSpent());
const auto mempool_spend_height{m_chain.Tip()->nHeight + 1};
if (coin.IsSpent() || (coin.IsCoinBase() && mempool_spend_height - coin.nHeight < COINBASE_MATURITY)) {
if (coin.IsCoinBase() && mempool_spend_height - coin.nHeight < COINBASE_MATURITY) {
return true;
}
}