diff options
| author | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2022-05-04 09:14:12 -0500 |
|---|---|---|
| committer | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2022-05-04 09:14:12 -0500 |
| commit | 25e2e59888b586566f5025f4e02b609804e7bc24 (patch) | |
| tree | aeed7f96ce21f9b2b614ff9bdd4ff6dd68d02df6 /src/downloadmanager.cpp | |
| parent | a55fcd64d334787ddc54cce10254f570411170a5 (diff) | |
Extend download speed datatypes to qint64/long long to avoid overflow
Diffstat (limited to 'src/downloadmanager.cpp')
| -rw-r--r-- | src/downloadmanager.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index b3a34d7b..5bf91c01 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -949,8 +949,8 @@ void DownloadManager::resumeDownloadInt(int index) } info->m_DownloadLast = 0; info->m_DownloadTimeLast = 0; - info->m_DownloadAcc = accumulator_set<int, stats<tag::rolling_mean>>(tag::rolling_window::window_size = 200); - info->m_DownloadTimeAcc = accumulator_set<int, stats<tag::rolling_mean>>(tag::rolling_window::window_size = 200); + info->m_DownloadAcc = accumulator_set<qint64, stats<tag::rolling_mean>>(tag::rolling_window::window_size = 200); + info->m_DownloadTimeAcc = accumulator_set<qint64, stats<tag::rolling_mean>>(tag::rolling_window::window_size = 200); log::debug("resume at {} bytes", info->m_ResumePos); startDownload(m_NexusInterface->getAccessManager()->get(request), info, true); } @@ -1571,7 +1571,7 @@ void DownloadManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) int oldProgress = info->m_Progress.first; info->m_Progress.first = ((info->m_ResumePos + bytesReceived) * 100) / (info->m_ResumePos + bytesTotal); - int elapsed = info->m_StartTime.elapsed(); + qint64 elapsed = info->m_StartTime.elapsed(); info->m_DownloadAcc(bytesReceived - info->m_DownloadLast); info->m_DownloadLast = bytesReceived; info->m_DownloadTimeAcc(elapsed - info->m_DownloadTimeLast); @@ -1580,7 +1580,7 @@ void DownloadManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) // calculate the download speed const double speed = rolling_mean(info->m_DownloadAcc) / (rolling_mean(info->m_DownloadTimeAcc) / 1000.0);; - const int remaining = (bytesTotal - bytesReceived) / speed * 1000; + const qint64 remaining = (bytesTotal - bytesReceived) / speed * 1000; info->m_Progress.second = tr("%1% - %2 - ~%3") .arg(info->m_Progress.first) |
