From 8f26dc3f9c985d60a87d5bbfce20b15427575046 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 12 Sep 2017 21:21:17 -0700 Subject: [PATCH] blindfix for Visual LARGE_INTEGER is not an integer : https://msdn.microsoft.com/en-us/library/windows/desktop/aa383713(v=vs.85).aspx Do not take any risk with the structure definition : use int init = 0; like Mac code --- programs/util.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/programs/util.h b/programs/util.h index 65eb195dc..c8be5f5fb 100644 --- a/programs/util.h +++ b/programs/util.h @@ -122,19 +122,23 @@ static int g_utilDisplayLevel; UTIL_STATIC UTIL_time_t UTIL_getTime(void) { UTIL_time_t x; QueryPerformanceCounter(&x); return x; } UTIL_STATIC U64 UTIL_getSpanTimeMicro(UTIL_time_t clockStart, UTIL_time_t clockEnd) { - static LARGE_INTEGER ticksPerSecond = 0; - if (!ticksPerSecond) { + static LARGE_INTEGER ticksPerSecond; + static int init = 0; + if (!init) { if (!QueryPerformanceFrequency(&ticksPerSecond)) UTIL_DISPLAYLEVEL(1, "ERROR: QueryPerformanceFrequency() failure\n"); + init = 1; } return 1000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart; } UTIL_STATIC U64 UTIL_getSpanTimeNano(UTIL_time_t clockStart, UTIL_time_t clockEnd) { - static LARGE_INTEGER ticksPerSecond = 0; - if (!ticksPerSecond) { + static LARGE_INTEGER ticksPerSecond; + static int init = 0; + if (!init) { if (!QueryPerformanceFrequency(&ticksPerSecond)) UTIL_DISPLAYLEVEL(1, "ERROR: QueryPerformanceFrequency() failure\n"); + init = 1; } return 1000000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart; }