Add method to remove a tx from CCoinsViewCache if it is unchanged

pull/6872/head
Matt Corallo 9 years ago
parent 4077ad20d0
commit 74d0f90262

@ -206,6 +206,15 @@ bool CCoinsViewCache::Flush() {
return fOk;
}
void CCoinsViewCache::Uncache(const uint256& hash)
{
CCoinsMap::iterator it = cacheCoins.find(hash);
if (it != cacheCoins.end() && it->second.flags == 0) {
cachedCoinsUsage -= it->second.coins.DynamicMemoryUsage();
cacheCoins.erase(it);
}
}
unsigned int CCoinsViewCache::GetCacheSize() const {
return cacheCoins.size();
}

@ -437,6 +437,12 @@ public:
*/
bool Flush();
/**
* Removes the transaction with the given hash from the cache, if it is
* not modified.
*/
void Uncache(const uint256 &txid);
//! Calculate the size of the cache (in number of transactions)
unsigned int GetCacheSize() const;

Loading…
Cancel
Save