From 231fc7b035481f748159968353c1cab81354e843 Mon Sep 17 00:00:00 2001 From: Fabian Jahr Date: Sun, 18 Apr 2021 16:48:52 +0200 Subject: refactor: Introduce GetFirstStoredBlock helper function --- src/node/blockstorage.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/node/blockstorage.cpp') diff --git a/src/node/blockstorage.cpp b/src/node/blockstorage.cpp index 21cb0250d8..c3f42fde2d 100644 --- a/src/node/blockstorage.cpp +++ b/src/node/blockstorage.cpp @@ -397,6 +397,16 @@ bool BlockManager::IsBlockPruned(const CBlockIndex* pblockindex) return (m_have_pruned && !(pblockindex->nStatus & BLOCK_HAVE_DATA) && pblockindex->nTx > 0); } +const CBlockIndex* GetFirstStoredBlock(const CBlockIndex* start_block) { + AssertLockHeld(::cs_main); + assert(start_block); + const CBlockIndex* last_block = start_block; + while (last_block->pprev && (last_block->pprev->nStatus & BLOCK_HAVE_DATA)) { + last_block = last_block->pprev; + } + return last_block; +} + // If we're using -prune with -reindex, then delete block files that will be ignored by the // reindex. Since reindexing works by starting at block file 0 and looping until a blockfile // is missing, do the same here to delete any later block files after a gap. Also delete all -- cgit v1.2.3