diff options
author | Carl Dong <contact@carldong.me> | 2020-08-26 14:50:08 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2021-03-01 17:56:22 -0500 |
commit | 8cdb2f7e58dfd9a631a8cbb8f0ee7e8c0c304eb4 (patch) | |
tree | 1be61dc39a846e77fce159e14f3b68cf53e149b4 /src | |
parent | 8b99efbcc08ab41caf657c6d730a27e6a91bc356 (diff) |
validation: Move LoadBlockIndexDB to CChainState
CChainState needed cuz setBlockIndexCandidates
Diffstat (limited to 'src')
-rw-r--r-- | src/validation.cpp | 11 | ||||
-rw-r--r-- | src/validation.h | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/validation.cpp b/src/validation.cpp index 771e14a536..921468c1ef 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -4136,11 +4136,12 @@ void BlockManager::Unload() { m_block_index.clear(); } -bool static LoadBlockIndexDB(ChainstateManager& chainman, const CChainParams& chainparams) EXCLUSIVE_LOCKS_REQUIRED(cs_main) +bool CChainState::LoadBlockIndexDB(const CChainParams& chainparams) { - if (!chainman.m_blockman.LoadBlockIndex( + assert(std::addressof(::ChainstateActive()) == std::addressof(*this)); + if (!m_blockman.LoadBlockIndex( chainparams.GetConsensus(), *pblocktree, - ::ChainstateActive().setBlockIndexCandidates)) { + setBlockIndexCandidates)) { return false; } @@ -4164,7 +4165,7 @@ bool static LoadBlockIndexDB(ChainstateManager& chainman, const CChainParams& ch // Check presence of blk files LogPrintf("Checking all blk files are present...\n"); std::set<int> setBlkDataFiles; - for (const std::pair<const uint256, CBlockIndex*>& item : chainman.BlockIndex()) { + for (const std::pair<const uint256, CBlockIndex*>& item : m_blockman.m_block_index) { CBlockIndex* pindex = item.second; if (pindex->nStatus & BLOCK_HAVE_DATA) { setBlkDataFiles.insert(pindex->nFile); @@ -4596,7 +4597,7 @@ bool ChainstateManager::LoadBlockIndex(const CChainParams& chainparams) // Load block index from databases bool needs_init = fReindex; if (!fReindex) { - bool ret = LoadBlockIndexDB(*this, chainparams); + bool ret = ActiveChainstate().LoadBlockIndexDB(chainparams); if (!ret) return false; needs_init = m_blockman.m_block_index.empty(); } diff --git a/src/validation.h b/src/validation.h index e7101e7d0a..ff6bac4c43 100644 --- a/src/validation.h +++ b/src/validation.h @@ -776,6 +776,8 @@ private: void CheckForkWarningConditions() EXCLUSIVE_LOCKS_REQUIRED(cs_main); void InvalidChainFound(CBlockIndex* pindexNew) EXCLUSIVE_LOCKS_REQUIRED(cs_main); + bool LoadBlockIndexDB(const CChainParams& chainparams) EXCLUSIVE_LOCKS_REQUIRED(cs_main); + friend ChainstateManager; }; |