From 25e2e59888b586566f5025f4e02b609804e7bc24 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Wed, 4 May 2022 09:14:12 -0500 Subject: Extend download speed datatypes to qint64/long long to avoid overflow --- src/downloadmanager.cpp | 8 ++++---- src/downloadmanager.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 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>(tag::rolling_window::window_size = 200); - info->m_DownloadTimeAcc = accumulator_set>(tag::rolling_window::window_size = 200); + info->m_DownloadAcc = accumulator_set>(tag::rolling_window::window_size = 200); + info->m_DownloadTimeAcc = accumulator_set>(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) diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 58027180..2bb3f6e8 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -79,10 +79,10 @@ private: struct DownloadInfo { ~DownloadInfo() { delete m_FileInfo; } - accumulator_set> m_DownloadAcc; - accumulator_set> m_DownloadTimeAcc; - int m_DownloadLast; - int m_DownloadTimeLast; + accumulator_set> m_DownloadAcc; + accumulator_set> m_DownloadTimeAcc; + qint64 m_DownloadLast; + qint64 m_DownloadTimeLast; unsigned int m_DownloadID; QString m_FileName; QFile m_Output; -- cgit v1.3.1