diff --git a/src/WrDiskCache.cc b/src/WrDiskCache.cc index 79af80e96..cd204ea62 100644 --- a/src/WrDiskCache.cc +++ b/src/WrDiskCache.cc @@ -112,12 +112,12 @@ void WrDiskCache::ensureLimit() { while(total_ > limit_) { EntrySet::iterator i = set_.begin(); - total_ -= (*i)->getSize(); - (*i)->writeToDisk(); WrDiskCacheEntry* ent = *i; A2_LOG_DEBUG(fmt("Force flush cache entry size=%lu, clock=%"PRId64, static_cast(ent->getSizeKey()), ent->getLastUpdate())); + total_ -= ent->getSize(); + ent->writeToDisk(); set_.erase(i); ent->setSizeKey(ent->getSize());