Merge pull request #4505

d4d3fbd Do not flush the cache after every block outside of IBD (Pieter Wuille)
This commit is contained in:
Wladimir J. van der Laan
2014-07-15 09:13:49 +02:00
2 changed files with 7 additions and 2 deletions

View File

@@ -111,7 +111,12 @@ bool CCoinsViewCache::SetCoins(const uint256 &txid, const CCoins &coins) {
}
bool CCoinsViewCache::HaveCoins(const uint256 &txid) {
return FetchCoins(txid) != cacheCoins.end();
CCoinsMap::iterator it = FetchCoins(txid);
// We're using vtx.empty() instead of IsPruned here for performance reasons,
// as we only care about the case where an transaction was replaced entirely
// in a reorganization (which wipes vout entirely, as opposed to spending
// which just cleans individual outputs).
return (it != cacheCoins.end() && !it->second.vout.empty());
}
uint256 CCoinsViewCache::GetBestBlock() {