From 03c82826f97af98c9c90b3500945654606129bc1 Mon Sep 17 00:00:00 2001 From: Alex Morcos Date: Wed, 11 Nov 2015 13:02:02 -0500 Subject: [PATCH] Make CCoinsViewTest behave like CCoinsViewDB --- src/test/coins_tests.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/test/coins_tests.cpp b/src/test/coins_tests.cpp index 13d848311a..65f739df26 100644 --- a/src/test/coins_tests.cpp +++ b/src/test/coins_tests.cpp @@ -45,15 +45,18 @@ public: bool BatchWrite(CCoinsMap& mapCoins, const uint256& hashBlock) { for (CCoinsMap::iterator it = mapCoins.begin(); it != mapCoins.end(); ) { - map_[it->first] = it->second.coins; - if (it->second.coins.IsPruned() && insecure_rand() % 3 == 0) { - // Randomly delete empty entries on write. - map_.erase(it->first); + if (it->second.flags & CCoinsCacheEntry::DIRTY) { + // Same optimization used in CCoinsViewDB is to only write dirty entries. + map_[it->first] = it->second.coins; + if (it->second.coins.IsPruned() && insecure_rand() % 3 == 0) { + // Randomly delete empty entries on write. + map_.erase(it->first); + } } mapCoins.erase(it++); } - mapCoins.clear(); - hashBestBlock_ = hashBlock; + if (!hashBlock.IsNull()) + hashBestBlock_ = hashBlock; return true; }