mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
Merge #11133: Document assumptions that are being made to avoid division by zero
55509f1
Document assumptions that are being made to avoid division by zero (practicalswift)
Pull request description:
Document assumptions (via `assert(…)`:s) that are being made to avoid division by zero.
Rationale:
* Make it clear to human reviewers and non-human static analyzers that what might look like potential division by zero cases are written the way they are intentionally (these cases are currently flagged by various static analyzers).
Tree-SHA512: bbb67b1370afd8f39bda35f9e3a20f4325f017d94cc1bfac3b0d36c9f34c2d95a9efe11efe44db29fb4aadd25d8276d8f0e03c8806ac64f0d21d821912e13b8e
This commit is contained in:
parent
36bb302f80
commit
93e979e4d4
@ -502,6 +502,7 @@ void TxConfirmStats::removeTx(unsigned int entryHeight, unsigned int nBestSeenHe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!inBlock && (unsigned int)blocksAgo >= scale) { // Only counts as a failure if not confirmed for entire period
|
if (!inBlock && (unsigned int)blocksAgo >= scale) { // Only counts as a failure if not confirmed for entire period
|
||||||
|
assert(scale != 0);
|
||||||
unsigned int periodsAgo = blocksAgo / scale;
|
unsigned int periodsAgo = blocksAgo / scale;
|
||||||
for (size_t i = 0; i < periodsAgo && i < failAvg.size(); i++) {
|
for (size_t i = 0; i < periodsAgo && i < failAvg.size(); i++) {
|
||||||
failAvg[i][bucketindex]++;
|
failAvg[i][bucketindex]++;
|
||||||
|
@ -628,6 +628,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog)
|
|||||||
QString toolTipDust = tr("This label turns red if any recipient receives an amount smaller than the current dust threshold.");
|
QString toolTipDust = tr("This label turns red if any recipient receives an amount smaller than the current dust threshold.");
|
||||||
|
|
||||||
// how many satoshis the estimated fee can vary per byte we guess wrong
|
// how many satoshis the estimated fee can vary per byte we guess wrong
|
||||||
|
assert(nBytes != 0);
|
||||||
double dFeeVary = (double)nPayFee / nBytes;
|
double dFeeVary = (double)nPayFee / nBytes;
|
||||||
|
|
||||||
QString toolTip4 = tr("Can vary +/- %1 duff(s) per input.").arg(dFeeVary);
|
QString toolTip4 = tr("Can vary +/- %1 duff(s) per input.").arg(dFeeVary);
|
||||||
|
@ -3699,6 +3699,7 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CWalletT
|
|||||||
|
|
||||||
if (recipient.fSubtractFeeFromAmount)
|
if (recipient.fSubtractFeeFromAmount)
|
||||||
{
|
{
|
||||||
|
assert(nSubtractFeeFromAmount != 0);
|
||||||
txout.nValue -= nFeeRet / nSubtractFeeFromAmount; // Subtract fee equally from each selected recipient
|
txout.nValue -= nFeeRet / nSubtractFeeFromAmount; // Subtract fee equally from each selected recipient
|
||||||
|
|
||||||
if (fFirst) // first receiver pays the remainder not divisible by output count
|
if (fFirst) // first receiver pays the remainder not divisible by output count
|
||||||
|
Loading…
Reference in New Issue
Block a user