diff options
author | Carl Dong <contact@carldong.me> | 2022-03-15 19:19:58 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2022-03-15 19:42:43 -0400 |
commit | 28ba0313eac37e4a900b7e97af7169ce999c4024 (patch) | |
tree | 0e082ed3f96cbbefa53c23c1812d272d5a4862e9 /src/node | |
parent | 12eb05df63f930969115af6dc66e2e5d02f2a517 (diff) | |
download | bitcoin-28ba0313eac37e4a900b7e97af7169ce999c4024.tar.xz |
Add and use CBlockIndexHeightOnlyComparator
...also use std::sort for clarity
Diffstat (limited to 'src/node')
-rw-r--r-- | src/node/blockstorage.cpp | 11 | ||||
-rw-r--r-- | src/node/blockstorage.h | 5 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/node/blockstorage.cpp b/src/node/blockstorage.cpp index bbdd240692..73bc4e0072 100644 --- a/src/node/blockstorage.cpp +++ b/src/node/blockstorage.cpp @@ -47,6 +47,11 @@ bool CBlockIndexWorkComparator::operator()(const CBlockIndex* pa, const CBlockIn return false; } +bool CBlockIndexHeightOnlyComparator::operator()(const CBlockIndex* pa, const CBlockIndex* pb) const +{ + return pa->nHeight < pb->nHeight; +} + static FILE* OpenUndoFile(const FlatFilePos& pos, bool fReadOnly = false); static FlatFileSeq BlockFileSeq(); static FlatFileSeq UndoFileSeq(); @@ -242,10 +247,8 @@ bool BlockManager::LoadBlockIndex(const Consensus::Params& consensus_params) for (auto& [_, block_index] : m_block_index) { vSortedByHeight.push_back(&block_index); } - sort(vSortedByHeight.begin(), vSortedByHeight.end(), - [](const CBlockIndex* pa, const CBlockIndex* pb) { - return pa->nHeight < pb->nHeight; - }); + std::sort(vSortedByHeight.begin(), vSortedByHeight.end(), + CBlockIndexHeightOnlyComparator()); for (CBlockIndex* pindex : vSortedByHeight) { if (ShutdownRequested()) return false; diff --git a/src/node/blockstorage.h b/src/node/blockstorage.h index d230bdd24b..0fd87ddaf1 100644 --- a/src/node/blockstorage.h +++ b/src/node/blockstorage.h @@ -62,6 +62,11 @@ struct CBlockIndexWorkComparator { bool operator()(const CBlockIndex* pa, const CBlockIndex* pb) const; }; +struct CBlockIndexHeightOnlyComparator { + /* Only compares the height of two block indices, doesn't try to tie-break */ + bool operator()(const CBlockIndex* pa, const CBlockIndex* pb) const; +}; + /** * Maintains a tree of blocks (stored in `m_block_index`) which is consulted * to determine where the most-work tip is. |