Merge #7904: txdb: Fix assert crash in new UTXO set cursor

a3310b4 txdb: Fix assert crash in new UTXO set cursor (Wladimir J. van der Laan)
This commit is contained in:
Wladimir J. van der Laan 2016-04-19 10:23:23 +02:00 committed by Alexander Block
parent 23fe35a18a
commit 17f2ea5d73

View File

@ -138,12 +138,8 @@ bool CCoinsViewDBCursor::Valid() const
void CCoinsViewDBCursor::Next() void CCoinsViewDBCursor::Next()
{ {
pcursor->Next(); pcursor->Next();
if (pcursor->Valid()) { if (!pcursor->Valid() || !pcursor->GetKey(keyTmp))
bool ok = pcursor->GetKey(keyTmp);
assert(ok); // If GetKey fails here something must be wrong with underlying database, we cannot handle that here
} else {
keyTmp.first = 0; // Invalidate cached key after last record so that Valid() and GetKey() return false keyTmp.first = 0; // Invalidate cached key after last record so that Valid() and GetKey() return false
}
} }
bool CBlockTreeDB::WriteBatchSync(const std::vector<std::pair<int, const CBlockFileInfo*> >& fileInfo, int nLastFile, const std::vector<const CBlockIndex*>& blockinfo) { bool CBlockTreeDB::WriteBatchSync(const std::vector<std::pair<int, const CBlockFileInfo*> >& fileInfo, int nLastFile, const std::vector<const CBlockIndex*>& blockinfo) {