Skip to content

Commit fa6d122

Browse files
Use unique_ptr:s for {fee,short,long}Stats (TxConfirmStats)
1 parent 5a6f768 commit fa6d122

File tree

2 files changed

+12
-18
lines changed

2 files changed

+12
-18
lines changed

src/policy/fees.cpp

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -548,16 +548,13 @@ CBlockPolicyEstimator::CBlockPolicyEstimator()
548548
bucketMap[INF_FEERATE] = bucketIndex;
549549
assert(bucketMap.size() == buckets.size());
550550

551-
feeStats = new TxConfirmStats(buckets, bucketMap, MED_BLOCK_PERIODS, MED_DECAY, MED_SCALE);
552-
shortStats = new TxConfirmStats(buckets, bucketMap, SHORT_BLOCK_PERIODS, SHORT_DECAY, SHORT_SCALE);
553-
longStats = new TxConfirmStats(buckets, bucketMap, LONG_BLOCK_PERIODS, LONG_DECAY, LONG_SCALE);
551+
feeStats = std::unique_ptr<TxConfirmStats>(new TxConfirmStats(buckets, bucketMap, MED_BLOCK_PERIODS, MED_DECAY, MED_SCALE));
552+
shortStats = std::unique_ptr<TxConfirmStats>(new TxConfirmStats(buckets, bucketMap, SHORT_BLOCK_PERIODS, SHORT_DECAY, SHORT_SCALE));
553+
longStats = std::unique_ptr<TxConfirmStats>(new TxConfirmStats(buckets, bucketMap, LONG_BLOCK_PERIODS, LONG_DECAY, LONG_SCALE));
554554
}
555555

556556
CBlockPolicyEstimator::~CBlockPolicyEstimator()
557557
{
558-
delete feeStats;
559-
delete shortStats;
560-
delete longStats;
561558
}
562559

563560
void CBlockPolicyEstimator::processTransaction(const CTxMemPoolEntry& entry, bool validFeeEstimate)
@@ -690,16 +687,16 @@ CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThr
690687
double sufficientTxs = SUFFICIENT_FEETXS;
691688
switch (horizon) {
692689
case FeeEstimateHorizon::SHORT_HALFLIFE: {
693-
stats = shortStats;
690+
stats = shortStats.get();
694691
sufficientTxs = SUFFICIENT_TXS_SHORT;
695692
break;
696693
}
697694
case FeeEstimateHorizon::MED_HALFLIFE: {
698-
stats = feeStats;
695+
stats = feeStats.get();
699696
break;
700697
}
701698
case FeeEstimateHorizon::LONG_HALFLIFE: {
702-
stats = longStats;
699+
stats = longStats.get();
703700
break;
704701
}
705702
default: {
@@ -1002,12 +999,9 @@ bool CBlockPolicyEstimator::Read(CAutoFile& filein)
1002999
}
10031000

10041001
// Destroy old TxConfirmStats and point to new ones that already reference buckets and bucketMap
1005-
delete feeStats;
1006-
delete shortStats;
1007-
delete longStats;
1008-
feeStats = fileFeeStats.release();
1009-
shortStats = fileShortStats.release();
1010-
longStats = fileLongStats.release();
1002+
feeStats = std::move(fileFeeStats);
1003+
shortStats = std::move(fileShortStats);
1004+
longStats = std::move(fileLongStats);
10111005

10121006
nBestSeenHeight = nFileBestSeenHeight;
10131007
historicalFirst = nFileHistoricalFirst;

src/policy/fees.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,9 @@ class CBlockPolicyEstimator
245245
std::map<uint256, TxStatsInfo> mapMemPoolTxs;
246246

247247
/** Classes to track historical data on transaction confirmations */
248-
TxConfirmStats* feeStats;
249-
TxConfirmStats* shortStats;
250-
TxConfirmStats* longStats;
248+
std::unique_ptr<TxConfirmStats> feeStats;
249+
std::unique_ptr<TxConfirmStats> shortStats;
250+
std::unique_ptr<TxConfirmStats> longStats;
251251

252252
unsigned int trackedTxs;
253253
unsigned int untrackedTxs;

0 commit comments

Comments
 (0)