From 398eecaa1d9fa00642142eeba298fb85a690c819 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Wed, 19 Feb 2025 10:58:16 +0100 Subject: [PATCH] fix: Potential division by zero on Windows 7 #2130 --- main/gui/source/window/win_window.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/main/gui/source/window/win_window.cpp b/main/gui/source/window/win_window.cpp index 266f3c67e..392a08481 100644 --- a/main/gui/source/window/win_window.cpp +++ b/main/gui/source/window/win_window.cpp @@ -204,17 +204,20 @@ namespace hex { i64 sleepTicks = 0; i64 sleepMilliSeconds = 0; - if (delta >= 0) { - sleepTicks = delta / period; - } else { - sleepTicks = -1 + delta / period; + if (period > 0) { + if (delta >= 0) { + sleepTicks = delta / period; + } else { + sleepTicks = -1 + delta / period; + } + + sleepMilliSeconds = delta - (period * sleepTicks); + const double sleepTime = std::round(1000.0 * double(sleepMilliSeconds) / double(performanceFrequency.QuadPart)); + if (sleepTime >= 0.0) { + Sleep(DWORD(sleepTime)); + } } - sleepMilliSeconds = delta - (period * sleepTicks); - const double sleepTime = std::round(1000.0 * double(sleepMilliSeconds) / double(performanceFrequency.QuadPart)); - if (sleepTime >= 0.0) { - Sleep(DWORD(sleepTime)); - } timeEndPeriod(granularity); return WVR_REDRAW;