Clean up global datastructures at shutdown.

This should make detecting leaks much easier.
This commit is contained in:
Pieter Wuille
2013-03-29 02:17:10 +01:00
parent dfd71bb450
commit 3427517d50
2 changed files with 41 additions and 2 deletions

View File

@@ -4750,3 +4750,29 @@ uint64 CTxOutCompressor::DecompressAmount(uint64 x)
}
return n;
}
class CMainCleanup
{
public:
CMainCleanup() {}
~CMainCleanup() {
// block headers
std::map<uint256, CBlockIndex*>::iterator it1 = mapBlockIndex.begin();
for (; it1 != mapBlockIndex.end(); it1++)
delete (*it1).second;
mapBlockIndex.clear();
// orphan blocks
std::map<uint256, CBlock*>::iterator it2 = mapOrphanBlocks.begin();
for (; it2 != mapOrphanBlocks.end(); it2++)
delete (*it2).second;
mapOrphanBlocks.clear();
// orphan transactions
std::map<uint256, CDataStream*>::iterator it3 = mapOrphanTransactions.begin();
for (; it3 != mapOrphanTransactions.end(); it3++)
delete (*it3).second;
mapOrphanTransactions.clear();
}
} instance_of_cmaincleanup;