Simplify removeRecursive

This commit is contained in:
Suhas Daftuar
2025-02-05 09:11:40 -05:00
parent 01d8520038
commit a5a7905d83
2 changed files with 37 additions and 23 deletions

View File

@@ -320,6 +320,11 @@ public:
*/
void check(const CCoinsViewCache& active_coins_tip, int64_t spendheight) const EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
/**
* Remove a transaction from the mempool along with any descendants.
* If the transaction is not already in the mempool, find any descendants
* and remove them.
*/
void removeRecursive(const CTransaction& tx, MemPoolRemovalReason reason) EXCLUSIVE_LOCKS_REQUIRED(cs);
/** After reorg, filter the entries that would no longer be valid in the next block, and update
* the entries' cached LockPoints if needed. The mempool does not have any knowledge of
@@ -581,6 +586,9 @@ private:
*/
void RemoveStaged(setEntries& stage, MemPoolRemovalReason reason) EXCLUSIVE_LOCKS_REQUIRED(cs);
/* Helper for the public removeRecursive() */
void removeRecursive(txiter to_remove, MemPoolRemovalReason reason) EXCLUSIVE_LOCKS_REQUIRED(cs);
/** Before calling removeUnchecked for a given transaction,
* UpdateForRemoveFromMempool must be called on the entire (dependent) set
* of transactions being removed at the same time. We use each