diff --git a/src/validation.cpp b/src/validation.cpp index b48e49a10bc..857be660fe3 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1210,6 +1210,7 @@ void CoinsViews::InitCache() CChainState::CChainState(CTxMemPool& mempool, BlockManager& blockman, std::optional from_snapshot_blockhash) : m_mempool(mempool), + m_params(::Params()), m_blockman(blockman), m_from_snapshot_blockhash(from_snapshot_blockhash) {} @@ -2196,20 +2197,19 @@ bool CChainState::FlushStateToDisk( return true; } -void CChainState::ForceFlushStateToDisk() { +void CChainState::ForceFlushStateToDisk() +{ BlockValidationState state; - const CChainParams& chainparams = Params(); - if (!this->FlushStateToDisk(chainparams, state, FlushStateMode::ALWAYS)) { + if (!this->FlushStateToDisk(m_params, state, FlushStateMode::ALWAYS)) { LogPrintf("%s: failed to flush state (%s)\n", __func__, state.ToString()); } } -void CChainState::PruneAndFlush() { +void CChainState::PruneAndFlush() +{ BlockValidationState state; fCheckForPruning = true; - const CChainParams& chainparams = Params(); - - if (!this->FlushStateToDisk(chainparams, state, FlushStateMode::NONE)) { + if (!this->FlushStateToDisk(m_params, state, FlushStateMode::NONE)) { LogPrintf("%s: failed to flush state (%s)\n", __func__, state.ToString()); } } @@ -4507,16 +4507,14 @@ bool CChainState::ResizeCoinsCaches(size_t coinstip_size, size_t coinsdb_size) this->ToString(), coinstip_size * (1.0 / 1024 / 1024)); BlockValidationState state; - const CChainParams& chainparams = Params(); - bool ret; if (coinstip_size > old_coinstip_size) { // Likely no need to flush if cache sizes have grown. - ret = FlushStateToDisk(chainparams, state, FlushStateMode::IF_NEEDED); + ret = FlushStateToDisk(m_params, state, FlushStateMode::IF_NEEDED); } else { // Otherwise, flush state to disk and deallocate the in-memory coins map. - ret = FlushStateToDisk(chainparams, state, FlushStateMode::ALWAYS); + ret = FlushStateToDisk(m_params, state, FlushStateMode::ALWAYS); CoinsTip().ReallocateCache(); } return ret; diff --git a/src/validation.h b/src/validation.h index 5720ba8071c..6f263ba5ffc 100644 --- a/src/validation.h +++ b/src/validation.h @@ -595,6 +595,8 @@ protected: //! mempool that is kept in sync with the chain CTxMemPool& m_mempool; + const CChainParams& m_params; + //! Manages the UTXO set, which is a reflection of the contents of `m_chain`. std::unique_ptr m_coins_views;