proper deleting leveldb iterator fixes assertion failure

This commit is contained in:
Miguel Freitas 2013-11-14 15:15:47 -02:00
parent ba0b4c8613
commit 2499954dbd

View File

@ -230,14 +230,17 @@ bool CBlockTreeDB::LoadBlockIndexGuts()
if (pindexGenesisBlock == NULL && diskindex.GetBlockHash() == Params().HashGenesisBlock()) if (pindexGenesisBlock == NULL && diskindex.GetBlockHash() == Params().HashGenesisBlock())
pindexGenesisBlock = pindexNew; pindexGenesisBlock = pindexNew;
if (!pindexNew->CheckIndex()) if (!pindexNew->CheckIndex()) {
delete pcursor;
return error("LoadBlockIndex() : CheckIndex failed: %s", pindexNew->ToString().c_str()); return error("LoadBlockIndex() : CheckIndex failed: %s", pindexNew->ToString().c_str());
}
pcursor->Next(); pcursor->Next();
} else { } else {
break; // if shutdown requested or finished loading block index break; // if shutdown requested or finished loading block index
} }
} catch (std::exception &e) { } catch (std::exception &e) {
delete pcursor;
return error("%s() : deserialize error", __PRETTY_FUNCTION__); return error("%s() : deserialize error", __PRETTY_FUNCTION__);
} }
} }