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
This commit is contained in:
fanquake 2020-12-28 13:36:48 +08:00 committed by PastaPastaPasta
parent 6c660cf29a
commit 54839f24af

View File

@ -12,21 +12,18 @@
#include <txmempool.h> #include <txmempool.h>
#include <util/system.h> #include <util/system.h>
static const char* FEE_ESTIMATES_FILENAME="fee_estimates.dat"; static const char* FEE_ESTIMATES_FILENAME = "fee_estimates.dat";
static constexpr double INF_FEERATE = 1e99; static constexpr double INF_FEERATE = 1e99;
std::string StringForFeeEstimateHorizon(FeeEstimateHorizon horizon) { std::string StringForFeeEstimateHorizon(FeeEstimateHorizon horizon)
static const std::map<FeeEstimateHorizon, std::string> horizon_strings = { {
{FeeEstimateHorizon::SHORT_HALFLIFE, "short"}, switch (horizon) {
{FeeEstimateHorizon::MED_HALFLIFE, "medium"}, case FeeEstimateHorizon::SHORT_HALFLIFE: return "short";
{FeeEstimateHorizon::LONG_HALFLIFE, "long"}, case FeeEstimateHorizon::MED_HALFLIFE: return "medium";
}; case FeeEstimateHorizon::LONG_HALFLIFE: return "long";
auto horizon_string = horizon_strings.find(horizon); } // no default case, so the compiler can warn about missing cases
assert(false);
if (horizon_string == horizon_strings.end()) return "unknown";
return horizon_string->second;
} }
/** /**
* We will instantiate an instance of this class to track transactions that were * 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 CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThreshold, FeeEstimateHorizon horizon, EstimationResult* result) const
{ {
TxConfirmStats* stats; TxConfirmStats* stats = nullptr;
double sufficientTxs = SUFFICIENT_FEETXS; double sufficientTxs = SUFFICIENT_FEETXS;
switch (horizon) { switch (horizon) {
case FeeEstimateHorizon::SHORT_HALFLIFE: { case FeeEstimateHorizon::SHORT_HALFLIFE: {
@ -658,10 +655,8 @@ CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThr
stats = longStats.get(); stats = longStats.get();
break; break;
} }
default: { } // no default case, so the compiler can warn about missing cases
throw std::out_of_range("CBlockPolicyEstimator::estimateRawFee unknown FeeEstimateHorizon"); assert(stats);
}
}
LOCK(m_cs_fee_estimator); LOCK(m_cs_fee_estimator);
// Return failure if trying to analyze a target we're not tracking // 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: { case FeeEstimateHorizon::LONG_HALFLIFE: {
return longStats->GetMaxConfirms(); return longStats->GetMaxConfirms();
} }
default: { } // no default case, so the compiler can warn about missing cases
throw std::out_of_range("CBlockPolicyEstimator::HighestTargetTracked unknown FeeEstimateHorizon"); assert(false);
}
}
} }
unsigned int CBlockPolicyEstimator::BlockSpan() const unsigned int CBlockPolicyEstimator::BlockSpan() const