Skip to content

Commit c1235e3

Browse files
ryanofskysdaftuar
authored andcommitted
Add RecursiveDynamicUsage overload for std::shared_ptr
This simplifies a few usage expressions.
1 parent 71f1903 commit c1235e3

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

src/core_memusage.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,9 @@ static inline size_t RecursiveDynamicUsage(const CBlockLocator& locator) {
6363
return memusage::DynamicUsage(locator.vHave);
6464
}
6565

66+
template<typename X>
67+
static inline size_t RecursiveDynamicUsage(const std::shared_ptr<X>& p) {
68+
return p ? memusage::DynamicUsage(p) + RecursiveDynamicUsage(*p) : 0;
69+
}
70+
6671
#endif // BITCOIN_CORE_MEMUSAGE_H

src/txmempool.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ CTxMemPoolEntry::CTxMemPoolEntry(const CTransactionRef& _tx, const CAmount& _nFe
2323
spendsCoinbase(_spendsCoinbase), sigOpCost(_sigOpsCost), lockPoints(lp)
2424
{
2525
nTxWeight = GetTransactionWeight(*tx);
26-
nUsageSize = RecursiveDynamicUsage(*tx) + memusage::DynamicUsage(tx);
26+
nUsageSize = RecursiveDynamicUsage(tx);
2727

2828
nCountWithDescendants = 1;
2929
nSizeWithDescendants = GetTxSize();

src/txmempool.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,7 @@ struct DisconnectedBlockTransactions {
740740
void addTransaction(const CTransactionRef& tx)
741741
{
742742
queuedTx.insert(tx);
743-
cachedInnerUsage += RecursiveDynamicUsage(*tx) + memusage::DynamicUsage(tx);
743+
cachedInnerUsage += RecursiveDynamicUsage(tx);
744744
}
745745

746746
// Remove entries based on txid_index, and update memory usage.
@@ -753,7 +753,7 @@ struct DisconnectedBlockTransactions {
753753
for (auto const &tx : vtx) {
754754
auto it = queuedTx.find(tx->GetHash());
755755
if (it != queuedTx.end()) {
756-
cachedInnerUsage -= RecursiveDynamicUsage(**it) + memusage::DynamicUsage(*it);
756+
cachedInnerUsage -= RecursiveDynamicUsage(*it);
757757
queuedTx.erase(it);
758758
}
759759
}
@@ -762,7 +762,7 @@ struct DisconnectedBlockTransactions {
762762
// Remove an entry by insertion_order index, and update memory usage.
763763
void removeEntry(indexed_disconnected_transactions::index<insertion_order>::type::iterator entry)
764764
{
765-
cachedInnerUsage -= RecursiveDynamicUsage(**entry) + memusage::DynamicUsage(*entry);
765+
cachedInnerUsage -= RecursiveDynamicUsage(*entry);
766766
queuedTx.get<insertion_order>().erase(entry);
767767
}
768768

0 commit comments

Comments
 (0)