aboutsummaryrefslogtreecommitdiff
path: root/src/node/blockstorage.cpp
diff options
context:
space:
mode:
authorCarl Dong <contact@carldong.me>2022-03-15 19:28:46 -0400
committerCarl Dong <contact@carldong.me>2022-03-15 19:42:43 -0400
commitf865cf8ded2b2fbc82a6fbc41226d991909a6880 (patch)
tree1f8a540512d05671c936cbe58cfb1f3b0a3c19dd /src/node/blockstorage.cpp
parent28ba0313eac37e4a900b7e97af7169ce999c4024 (diff)
downloadbitcoin-f865cf8ded2b2fbc82a6fbc41226d991909a6880.tar.xz
Add and use BlockManager::GetAllBlockIndices
Diffstat (limited to 'src/node/blockstorage.cpp')
-rw-r--r--src/node/blockstorage.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/node/blockstorage.cpp b/src/node/blockstorage.cpp
index 73bc4e0072..763fd29744 100644
--- a/src/node/blockstorage.cpp
+++ b/src/node/blockstorage.cpp
@@ -56,6 +56,17 @@ static FILE* OpenUndoFile(const FlatFilePos& pos, bool fReadOnly = false);
static FlatFileSeq BlockFileSeq();
static FlatFileSeq UndoFileSeq();
+std::vector<CBlockIndex*> BlockManager::GetAllBlockIndices()
+{
+ AssertLockHeld(cs_main);
+ std::vector<CBlockIndex*> rv;
+ rv.reserve(m_block_index.size());
+ for (auto& [_, block_index] : m_block_index) {
+ rv.push_back(&block_index);
+ }
+ return rv;
+}
+
CBlockIndex* BlockManager::LookupBlockIndex(const uint256& hash)
{
AssertLockHeld(cs_main);
@@ -242,11 +253,7 @@ bool BlockManager::LoadBlockIndex(const Consensus::Params& consensus_params)
}
// Calculate nChainWork
- std::vector<CBlockIndex*> vSortedByHeight;
- vSortedByHeight.reserve(m_block_index.size());
- for (auto& [_, block_index] : m_block_index) {
- vSortedByHeight.push_back(&block_index);
- }
+ std::vector<CBlockIndex*> vSortedByHeight{GetAllBlockIndices()};
std::sort(vSortedByHeight.begin(), vSortedByHeight.end(),
CBlockIndexHeightOnlyComparator());