mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-17 13:07:54 +02:00
include the CTxWitness structure in memory usage accounting.
This commit is contained in:
parent
808300b66e
commit
fb37954969
1 changed files with 31 additions and 9 deletions
|
|
@ -26,27 +26,49 @@ static inline size_t RecursiveDynamicUsage(const CTxOut& out) {
|
|||
return RecursiveDynamicUsage(out.scriptPubKey);
|
||||
}
|
||||
|
||||
//TODO Account for CTxWitness.
|
||||
static inline size_t RecursiveDynamicUsage(const ::CTxInWitness& wit) {
|
||||
return memusage::DynamicUsage(wit.vchIssuanceAmountRangeproof)
|
||||
+ memusage::DynamicUsage(wit.vchInflationKeysRangeproof);
|
||||
}
|
||||
|
||||
static inline size_t RecursiveDynamicUsage(const ::CTxOutWitness& wit) {
|
||||
return memusage::DynamicUsage(wit.vchSurjectionproof)
|
||||
+ memusage::DynamicUsage(wit.vchRangeproof);
|
||||
}
|
||||
|
||||
static inline size_t RecursiveDynamicUsage(const ::CTxWitness& wit) {
|
||||
size_t mem = memusage::DynamicUsage(wit.vtxinwit)
|
||||
+ memusage::DynamicUsage(wit.vtxoutwit);
|
||||
for (const CTxInWitness& w : wit.vtxinwit) {
|
||||
mem += RecursiveDynamicUsage(w);
|
||||
}
|
||||
for (const CTxOutWitness& w : wit.vtxoutwit) {
|
||||
mem += RecursiveDynamicUsage(w);
|
||||
}
|
||||
return mem;
|
||||
}
|
||||
|
||||
static inline size_t RecursiveDynamicUsage(const CTransaction& tx) {
|
||||
size_t mem = memusage::DynamicUsage(tx.vin) + memusage::DynamicUsage(tx.vout);
|
||||
for (std::vector<CTxIn>::const_iterator it = tx.vin.begin(); it != tx.vin.end(); it++) {
|
||||
mem += RecursiveDynamicUsage(*it);
|
||||
for (const CTxIn& txi : tx.vin) {
|
||||
mem += RecursiveDynamicUsage(txi);
|
||||
}
|
||||
for (std::vector<CTxOut>::const_iterator it = tx.vout.begin(); it != tx.vout.end(); it++) {
|
||||
mem += RecursiveDynamicUsage(*it);
|
||||
for (const CTxOut& txo : tx.vout) {
|
||||
mem += RecursiveDynamicUsage(txo);
|
||||
}
|
||||
mem += RecursiveDynamicUsage(tx.wit);
|
||||
return mem;
|
||||
}
|
||||
|
||||
static inline size_t RecursiveDynamicUsage(const CMutableTransaction& tx) {
|
||||
size_t mem = memusage::DynamicUsage(tx.vin) + memusage::DynamicUsage(tx.vout);
|
||||
for (std::vector<CTxIn>::const_iterator it = tx.vin.begin(); it != tx.vin.end(); it++) {
|
||||
mem += RecursiveDynamicUsage(*it);
|
||||
for (const CTxIn& txi : tx.vin) {
|
||||
mem += RecursiveDynamicUsage(txi);
|
||||
}
|
||||
for (std::vector<CTxOut>::const_iterator it = tx.vout.begin(); it != tx.vout.end(); it++) {
|
||||
mem += RecursiveDynamicUsage(*it);
|
||||
for (const CTxOut& txo : tx.vout) {
|
||||
mem += RecursiveDynamicUsage(txo);
|
||||
}
|
||||
mem += RecursiveDynamicUsage(tx.wit);
|
||||
return mem;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue