From 54839f24afc1ac4d090af8efe6e1897276a4bba5 Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 28 Dec 2020 13:36:48 +0800 Subject: [PATCH] Merge #20771: refactor: Enable -Wswitch for FeeEstimateHorizon faccf8b1e1af293dfe9158d732718e7798a2fd89 refactor: Enable -Wswitch for FeeEstimateHorizon (MarcoFalke) Pull request description: This enables the `-Wswitch` compiler warning for `FeeEstimateHorizon` by removing the `default` case in `switch` statements. ACKs for top commit: practicalswift: cr ACK faccf8b1e1af293dfe9158d732718e7798a2fd89 jonatack: ACK faccf8b1e1af293dfe9158d732718e7798a2fd89 hebasto: ACK faccf8b1e1af293dfe9158d732718e7798a2fd89, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 63a8dff6e8dead149ec2fa8319e7ff41022c9534d423d3086fd8f22be073dc4915f74c7fe9139ee681a8204730cf58c80ef40c93fb33032d586e68b4f78f557d --- src/policy/fees.cpp | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp index 65e07d5dd8..fd2b693ecb 100644 --- a/src/policy/fees.cpp +++ b/src/policy/fees.cpp @@ -12,21 +12,18 @@ #include #include -static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat"; +static const char* FEE_ESTIMATES_FILENAME = "fee_estimates.dat"; static constexpr double INF_FEERATE = 1e99; -std::string StringForFeeEstimateHorizon(FeeEstimateHorizon horizon) { - static const std::map horizon_strings = { - {FeeEstimateHorizon::SHORT_HALFLIFE, "short"}, - {FeeEstimateHorizon::MED_HALFLIFE, "medium"}, - {FeeEstimateHorizon::LONG_HALFLIFE, "long"}, - }; - auto horizon_string = horizon_strings.find(horizon); - - if (horizon_string == horizon_strings.end()) return "unknown"; - - return horizon_string->second; +std::string StringForFeeEstimateHorizon(FeeEstimateHorizon horizon) +{ + switch (horizon) { + case FeeEstimateHorizon::SHORT_HALFLIFE: return "short"; + case FeeEstimateHorizon::MED_HALFLIFE: return "medium"; + case FeeEstimateHorizon::LONG_HALFLIFE: return "long"; + } // no default case, so the compiler can warn about missing cases + assert(false); } /** * We will instantiate an instance of this class to track transactions that were @@ -642,7 +639,7 @@ CFeeRate CBlockPolicyEstimator::estimateFee(int confTarget) const CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThreshold, FeeEstimateHorizon horizon, EstimationResult* result) const { - TxConfirmStats* stats; + TxConfirmStats* stats = nullptr; double sufficientTxs = SUFFICIENT_FEETXS; switch (horizon) { case FeeEstimateHorizon::SHORT_HALFLIFE: { @@ -658,10 +655,8 @@ CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThr stats = longStats.get(); break; } - default: { - throw std::out_of_range("CBlockPolicyEstimator::estimateRawFee unknown FeeEstimateHorizon"); - } - } + } // no default case, so the compiler can warn about missing cases + assert(stats); LOCK(m_cs_fee_estimator); // Return failure if trying to analyze a target we're not tracking @@ -691,10 +686,8 @@ unsigned int CBlockPolicyEstimator::HighestTargetTracked(FeeEstimateHorizon hori case FeeEstimateHorizon::LONG_HALFLIFE: { return longStats->GetMaxConfirms(); } - default: { - throw std::out_of_range("CBlockPolicyEstimator::HighestTargetTracked unknown FeeEstimateHorizon"); - } - } + } // no default case, so the compiler can warn about missing cases + assert(false); } unsigned int CBlockPolicyEstimator::BlockSpan() const