aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Dong <contact@carldong.me>2020-08-26 14:50:08 -0400
committerCarl Dong <contact@carldong.me>2021-03-01 17:56:22 -0500
commit8cdb2f7e58dfd9a631a8cbb8f0ee7e8c0c304eb4 (patch)
tree1be61dc39a846e77fce159e14f3b68cf53e149b4 /src
parent8b99efbcc08ab41caf657c6d730a27e6a91bc356 (diff)
validation: Move LoadBlockIndexDB to CChainState
CChainState needed cuz setBlockIndexCandidates
Diffstat (limited to 'src')
-rw-r--r--src/validation.cpp11
-rw-r--r--src/validation.h2
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;
};