coins: add Reset on CCoinsViewCache

Add a Reset() method to CCoinsViewCache that clears cacheCoins,
cachedCoinsUsage, and hashBlock without flushing to the base view.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>
Co-authored-by: sedited <seb.kung@gmail.com>
This commit is contained in:
Andrew Toth 2026-01-24 13:58:46 -05:00
parent ab233255d4
commit 8dd9200fc9
No known key found for this signature in database
GPG Key ID: 60007AFC8938B018
2 changed files with 13 additions and 0 deletions

View File

@ -274,6 +274,13 @@ void CCoinsViewCache::Sync()
}
}
void CCoinsViewCache::Reset() noexcept
{
cacheCoins.clear();
cachedCoinsUsage = 0;
hashBlock.SetNull();
}
void CCoinsViewCache::Uncache(const COutPoint& hash)
{
CCoinsMap::iterator it = cacheCoins.find(hash);

View File

@ -376,6 +376,12 @@ protected:
/* Cached dynamic memory usage for the inner Coin objects. */
mutable size_t cachedCoinsUsage{0};
/**
* Discard all modifications made to this cache without flushing to the base view.
* This can be used to efficiently reuse a cache instance across multiple operations.
*/
void Reset() noexcept;
public:
CCoinsViewCache(CCoinsView *baseIn, bool deterministic = false);