Page MenuHomePhabricator

D13090.diff
No OneTemporary

D13090.diff

diff --git a/src/test/util/setup_common.cpp b/src/test/util/setup_common.cpp
--- a/src/test/util/setup_common.cpp
+++ b/src/test/util/setup_common.cpp
@@ -202,8 +202,7 @@
m_node.banman.reset();
m_node.addrman.reset();
m_node.args = nullptr;
- WITH_LOCK(::cs_main,
- UnloadBlockIndex(m_node.mempool.get(), *m_node.chainman));
+ WITH_LOCK(::cs_main, UnloadBlockIndex(*m_node.chainman));
m_node.mempool.reset();
m_node.scheduler.reset();
m_node.chainman.reset();
diff --git a/src/validation.h b/src/validation.h
--- a/src/validation.h
+++ b/src/validation.h
@@ -189,7 +189,7 @@
/**
* Unload database information.
*/
-void UnloadBlockIndex(CTxMemPool *mempool, ChainstateManager &chainman)
+void UnloadBlockIndex(ChainstateManager &chainman)
EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
/**
@@ -1276,10 +1276,7 @@
//! ResizeCoinsCaches() as needed.
void MaybeRebalanceCaches() EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
- ~ChainstateManager() {
- LOCK(::cs_main);
- UnloadBlockIndex(/*mempool=*/nullptr, *this);
- }
+ ~ChainstateManager();
};
/** Dump the mempool to disk. */
diff --git a/src/validation.cpp b/src/validation.cpp
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -4814,14 +4814,11 @@
// May NOT be used after any connections are up as much
// of the peer-processing logic assumes a consistent
// block index state
-void UnloadBlockIndex(CTxMemPool *mempool, ChainstateManager &chainman) {
+void UnloadBlockIndex(ChainstateManager &chainman) {
AssertLockHeld(::cs_main);
chainman.Unload();
pindexBestForkTip = nullptr;
pindexBestForkBase = nullptr;
- if (mempool) {
- mempool->clear();
- }
}
bool ChainstateManager::LoadBlockIndex() {
@@ -6128,3 +6125,8 @@
}
}
}
+
+ChainstateManager::~ChainstateManager() {
+ LOCK(::cs_main);
+ UnloadBlockIndex(*this);
+}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 1, 11:56 (3 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5187741
Default Alt Text
D13090.diff (1 KB)

Event Timeline