aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2021-12-03 12:07:57 +0800
committerfanquake <fanquake@gmail.com>2021-12-03 12:20:46 +0800
commitffe414bd9a9c510907da759a170a291915f138f2 (patch)
treed4bafaa3c1daed418ff86d980415073d5ff573f5 /src
parent0b30bdd519ae06ec70e136a1b890421eb6f764cc (diff)
parentddd74ff65c471c5c25815ac0643d16ea0d51f58f (diff)
downloadbitcoin-ffe414bd9a9c510907da759a170a291915f138f2.tar.xz
Merge bitcoin/bitcoin#23649: circular dependency followups
ddd74ff65c471c5c25815ac0643d16ea0d51f58f clean up txmempool includes (glozow) c4efc4db5484910ac33ba41aa76f4e23639d6f33 change TestLockPointValidity to take a const reference (glozow) b01784f0270dc20f8076ea4e46203c97b40b93ef remove unnecessary casts and use braced initialization (glozow) Pull request description: Followups from #22677 + clean up `TestLockPointValidity` ACKs for top commit: theStack: Code-review ACK ddd74ff65c471c5c25815ac0643d16ea0d51f58f Tree-SHA512: 0f7f26535b7301e2fb379e676310bdc7cfb2c5e232a6657f41dc6d3bc91583ec452eb2359ad2f2416ea12dd856f7fab3fa507a391ccf80f14de96da989281d96
Diffstat (limited to 'src')
-rw-r--r--src/txmempool.cpp12
-rw-r--r--src/txmempool.h6
-rw-r--r--src/validation.cpp6
3 files changed, 12 insertions, 12 deletions
diff --git a/src/txmempool.cpp b/src/txmempool.cpp
index 27fbb8acac..fcfc27d38e 100644
--- a/src/txmempool.cpp
+++ b/src/txmempool.cpp
@@ -5,6 +5,7 @@
#include <txmempool.h>
+#include <chain.h>
#include <coins.h>
#include <consensus/consensus.h>
#include <consensus/tx_verify.h>
@@ -73,16 +74,15 @@ private:
const LockPoints& lp;
};
-bool TestLockPointValidity(CChain& active_chain, const LockPoints* lp)
+bool TestLockPointValidity(CChain& active_chain, const LockPoints& lp)
{
AssertLockHeld(cs_main);
- assert(lp);
// If there are relative lock times then the maxInputBlock will be set
// If there are no relative lock times, the LockPoints don't depend on the chain
- if (lp->maxInputBlock) {
+ if (lp.maxInputBlock) {
// Check whether active_chain is an extension of the block at which the LockPoints
// calculation was valid. If not LockPoints are no longer valid
- if (!active_chain.Contains(lp->maxInputBlock)) {
+ if (!active_chain.Contains(lp.maxInputBlock)) {
return false;
}
}
@@ -649,8 +649,8 @@ void CTxMemPool::removeForReorg(CChain& chain, std::function<bool(txiter)> check
}
RemoveStaged(setAllRemoves, false, MemPoolRemovalReason::REORG);
for (indexed_transaction_set::const_iterator it = mapTx.begin(); it != mapTx.end(); it++) {
- LockPoints lp = it->GetLockPoints();
- if (!TestLockPointValidity(chain, &lp)) {
+ const LockPoints lp{it->GetLockPoints()};
+ if (!TestLockPointValidity(chain, lp)) {
mapTx.modify(it, update_lock_points(lp));
}
}
diff --git a/src/txmempool.h b/src/txmempool.h
index c6e08a3ca5..f87ecc9cd0 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -14,7 +14,6 @@
#include <utility>
#include <vector>
-#include <chain.h>
#include <coins.h>
#include <consensus/amount.h>
#include <indirectmap.h>
@@ -26,12 +25,13 @@
#include <util/epochguard.h>
#include <util/hasher.h>
-#include <boost/multi_index_container.hpp>
#include <boost/multi_index/hashed_index.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index/sequenced_index.hpp>
+#include <boost/multi_index_container.hpp>
class CBlockIndex;
+class CChain;
class CChainState;
extern RecursiveMutex cs_main;
@@ -53,7 +53,7 @@ struct LockPoints {
/**
* Test whether the LockPoints height and time are still valid on the current chain
*/
-bool TestLockPointValidity(CChain& active_chain, const LockPoints* lp) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
+bool TestLockPointValidity(CChain& active_chain, const LockPoints& lp) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
struct CompareIteratorByHash {
// SFINAE for T where T is either a pointer type (e.g., a txiter) or a reference_wrapper<T>
diff --git a/src/validation.cpp b/src/validation.cpp
index 6ed5e7a548..b532888f37 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -357,7 +357,7 @@ void CChainState::MaybeUpdateMempoolForReorg(
AssertLockHeld(::cs_main);
const CTransaction& tx = it->GetTx();
LockPoints lp = it->GetLockPoints();
- bool validLP = TestLockPointValidity(m_chain, &lp);
+ const bool validLP{TestLockPointValidity(m_chain, lp)};
CCoinsViewMemPool view_mempool(&CoinsTip(), *m_mempool);
if (!CheckFinalTx(m_chain.Tip(), tx, flags)
|| !CheckSequenceLocks(m_chain.Tip(), view_mempool, tx, flags, &lp, validLP)) {
@@ -371,8 +371,8 @@ void CChainState::MaybeUpdateMempoolForReorg(
continue;
const Coin &coin = CoinsTip().AccessCoin(txin.prevout);
assert(!coin.IsSpent());
- unsigned int nMemPoolHeight = m_chain.Tip()->nHeight + 1;
- if (coin.IsSpent() || (coin.IsCoinBase() && ((signed long)nMemPoolHeight) - coin.nHeight < COINBASE_MATURITY)) {
+ const auto mempool_spend_height{m_chain.Tip()->nHeight + 1};
+ if (coin.IsSpent() || (coin.IsCoinBase() && mempool_spend_height - coin.nHeight < COINBASE_MATURITY)) {
should_remove = true;
break;
}