@@ -296,8 +296,8 @@ bool CBlockTreeDB::ReadFlag(const std::string &name, bool &fValue) {
296
296
297
297
bool CBlockTreeDB::LoadBlockIndexGuts (const Consensus::Params& consensusParams, std::function<CBlockIndex*(const uint256&)> insertBlockIndex)
298
298
{
299
+ AssertLockHeld (::cs_main);
299
300
std::unique_ptr<CDBIterator> pcursor (NewIterator ());
300
-
301
301
pcursor->Seek (std::make_pair (DB_BLOCK_INDEX, uint256 ()));
302
302
303
303
// Load m_block_index
@@ -311,19 +311,16 @@ bool CBlockTreeDB::LoadBlockIndexGuts(const Consensus::Params& consensusParams,
311
311
CBlockIndex* pindexNew = insertBlockIndex (diskindex.GetBlockHash ());
312
312
pindexNew->pprev = insertBlockIndex (diskindex.hashPrev );
313
313
pindexNew->nHeight = diskindex.nHeight ;
314
+ pindexNew->nFile = diskindex.nFile ;
315
+ pindexNew->nDataPos = diskindex.nDataPos ;
316
+ pindexNew->nUndoPos = diskindex.nUndoPos ;
314
317
pindexNew->nVersion = diskindex.nVersion ;
315
318
pindexNew->hashMerkleRoot = diskindex.hashMerkleRoot ;
316
319
pindexNew->nTime = diskindex.nTime ;
317
320
pindexNew->nBits = diskindex.nBits ;
318
321
pindexNew->nNonce = diskindex.nNonce ;
322
+ pindexNew->nStatus = diskindex.nStatus ;
319
323
pindexNew->nTx = diskindex.nTx ;
320
- {
321
- LOCK (::cs_main);
322
- pindexNew->nFile = diskindex.nFile ;
323
- pindexNew->nDataPos = diskindex.nDataPos ;
324
- pindexNew->nUndoPos = diskindex.nUndoPos ;
325
- pindexNew->nStatus = diskindex.nStatus ;
326
- }
327
324
328
325
if (!CheckProofOfWork (pindexNew->GetBlockHash (), pindexNew->nBits , consensusParams)) {
329
326
return error (" %s: CheckProofOfWork failed: %s" , __func__, pindexNew->ToString ());
0 commit comments