Make the test pass by fixing the bug!

This commit is contained in:
Jack Grigg 2016-12-10 00:56:32 +13:00
parent eeee6d5d6c
commit 9d2cc3a784
No known key found for this signature in database
GPG Key ID: 6A6914DAFBEA00DA
1 changed files with 12 additions and 9 deletions

View File

@ -756,16 +756,19 @@ void CWallet::DecrementNoteWitnesses(const CBlockIndex* pindex)
CNoteData* nd = &(item.second);
// Check the validity of the cache
assert(nWitnessCacheSize >= nd->witnesses.size());
// Witnesses being decremented should always be either -1
// (never incremented or decremented) or equal to pindex
assert((nd->witnessHeight == -1) ||
(nd->witnessHeight == pindex->nHeight));
if (nd->witnesses.size() > 0) {
nd->witnesses.pop_front();
// Only increment witnesses that are not above the current height
if (nd->witnessHeight <= pindex->nHeight) {
// Witnesses being decremented should always be either -1
// (never incremented or decremented) or equal to pindex
assert((nd->witnessHeight == -1) ||
(nd->witnessHeight == pindex->nHeight));
if (nd->witnesses.size() > 0) {
nd->witnesses.pop_front();
}
// pindex is the block being removed, so the new witness cache
// height is one below it.
nd->witnessHeight = pindex->nHeight - 1;
}
// pindex is the block being removed, so the new witness cache
// height is one below it.
nd->witnessHeight = pindex->nHeight - 1;
}
}
nWitnessCacheSize -= 1;