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 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/downloadmanager.cpp') 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) -- cgit v1.3.1