|
|
|
@ -2517,10 +2517,9 @@ struct PerBlockConnectTrace {
|
|
|
|
|
class ConnectTrace {
|
|
|
|
|
private:
|
|
|
|
|
std::vector<PerBlockConnectTrace> blocksConnected;
|
|
|
|
|
CTxMemPool &pool;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
explicit ConnectTrace(CTxMemPool &_pool) : blocksConnected(1), pool(_pool) {}
|
|
|
|
|
explicit ConnectTrace() : blocksConnected(1) {}
|
|
|
|
|
|
|
|
|
|
void BlockConnected(CBlockIndex* pindex, std::shared_ptr<const CBlock> pblock) {
|
|
|
|
|
assert(!blocksConnected.back().pindex);
|
|
|
|
@ -2833,7 +2832,7 @@ bool CChainState::ActivateBestChain(BlockValidationState &state, const CChainPar
|
|
|
|
|
do {
|
|
|
|
|
// We absolutely may not unlock cs_main until we've made forward progress
|
|
|
|
|
// (with the exception of shutdown due to hardware issues, low disk space, etc).
|
|
|
|
|
ConnectTrace connectTrace(mempool); // Destructed before cs_main is unlocked
|
|
|
|
|
ConnectTrace connectTrace; // Destructed before cs_main is unlocked
|
|
|
|
|
|
|
|
|
|
if (pindexMostWork == nullptr) {
|
|
|
|
|
pindexMostWork = FindMostWorkChain();
|
|
|
|
|