mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 15:09:59 +01:00
Merge #19413: refactor: Remove confusing BlockIndex global
fa0dfdf447refactor: Remove confusing BlockIndex global (MarcoFalke) Pull request description: The global `::BlockIndex()` is problematic for several reasons: * It returns a mutable reference to the block tree, without the appropriate lock annotation (`m_block_index` is guarded by `cs_main`). The current code is fine, but in the future this might lead to accidental races and data corruption. * The rpc server shouldn't rely on node globals, but rather a context that is passed in to the RPC method. * Tests might want to spin up their own block tree, and thus should also not rely on a single global. Fix all issues by removing the global ACKs for top commit: promag: Code review ACKfa0dfdf447. jonatack: re-ACKfa0dfdfTree-SHA512: 8f158fc5e1c67e73588a21c25677b3fa0fe442313b13ec24b87054806c59607d6ba0c062a865ce3e0ee568706bd0d1faa84febda21aff5bcd65dab172f74c52f
This commit is contained in:
@@ -1588,7 +1588,7 @@ bool AppInitMain(const util::Ref& context, NodeContext& node)
|
||||
|
||||
// If the loaded chain has a wrong genesis, bail out immediately
|
||||
// (we're likely using a testnet datadir, or the other way around).
|
||||
if (!::BlockIndex().empty() &&
|
||||
if (!chainman.BlockIndex().empty() &&
|
||||
!LookupBlockIndex(chainparams.GetConsensus().hashGenesisBlock)) {
|
||||
return InitError(_("Incorrect or no genesis block found. Wrong datadir for network?"));
|
||||
}
|
||||
@@ -1868,8 +1868,8 @@ bool AppInitMain(const util::Ref& context, NodeContext& node)
|
||||
//// debug print
|
||||
{
|
||||
LOCK(cs_main);
|
||||
LogPrintf("block tree size = %u\n", ::BlockIndex().size());
|
||||
chain_active_height = ::ChainActive().Height();
|
||||
LogPrintf("block tree size = %u\n", chainman.BlockIndex().size());
|
||||
chain_active_height = chainman.ActiveChain().Height();
|
||||
}
|
||||
LogPrintf("nBestHeight = %d\n", chain_active_height);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user