Merge pull request #5054 from tniessen/util-use-64-bit-timer util: use 64 bit timer on Windows
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6e6443a..8e8ee3b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -263,6 +263,11 @@ ELSE ()
ENDIF ()
ENDIF()
+# Ensure that MinGW provides the correct header files.
+IF (WIN32 AND NOT CYGWIN)
+ ADD_DEFINITIONS(-DWIN32 -D_WIN32_WINNT=0x0600)
+ENDIF()
+
IF( NOT CMAKE_CONFIGURATION_TYPES )
# Build Debug by default
IF (NOT CMAKE_BUILD_TYPE)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 750085b..de7e408 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -299,8 +299,6 @@ FILE(GLOB SRC_H
# On Windows use specific platform sources
IF (WIN32 AND NOT CYGWIN)
- ADD_DEFINITIONS(-DWIN32 -D_WIN32_WINNT=0x0600)
-
IF(MSVC)
SET(WIN_RC "win32/git2.rc")
ENDIF()
diff --git a/src/util.h b/src/util.h
index 792eba0..b49850d 100644
--- a/src/util.h
+++ b/src/util.h
@@ -357,22 +357,9 @@ GIT_INLINE(void) git__memzero(void *data, size_t size)
GIT_INLINE(double) git__timer(void)
{
- /* We need the initial tick count to detect if the tick
- * count has rolled over. */
- static DWORD initial_tick_count = 0;
-
- /* GetTickCount returns the number of milliseconds that have
+ /* GetTickCount64 returns the number of milliseconds that have
* elapsed since the system was started. */
- DWORD count = GetTickCount();
-
- if(initial_tick_count == 0) {
- initial_tick_count = count;
- } else if (count < initial_tick_count) {
- /* The tick count has rolled over - adjust for it. */
- count = (0xFFFFFFFF - initial_tick_count) + count;
- }
-
- return (double) count / (double) 1000;
+ return (double) GetTickCount64() / (double) 1000;
}
#elif __APPLE__