freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2-demos] master 3825e63 1/4: * src/ftbench.c: Fix get_time() fo


From: Werner Lemberg
Subject: [freetype2-demos] master 3825e63 1/4: * src/ftbench.c: Fix get_time() for Mingw64
Date: Wed, 26 May 2021 09:50:28 -0400 (EDT)

branch: master
commit 3825e638e1bb390a6cfc20c2a2edf3d86f89247b
Author: David Turner <david@freetype.org>
Commit: David Turner <david.turner.dev@gmail.com>

    * src/ftbench.c: Fix get_time() for Mingw64
    
    clock_gettime() cannot be used when cross-compiling for Windows
    using the Linux Mingw64 toolchain, so ensure the Win32-specific
    timer code is always used when _WIN32 is defined.
---
 ChangeLog     |  8 ++++++++
 src/ftbench.c | 30 +++++++++++++++++-------------
 2 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c8290fb..a7dfa84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2021-05-22  David Turner  <david@freetype.org>
+
+        * src/ftbench.c: Fix get_time() for Mingw64
+
+        clock_gettime() cannot be used when cross-compiling for Windows 
+        using the Linux Mingw64 toolchain, so ensure the Win32-specific 
+        timer code is always used when _WIN32 is defined.
+
 2021-05-24  David Turner  <david@freetype.org>
 
        [build] Add Meson build files and documentation.
diff --git a/src/ftbench.c b/src/ftbench.c
index 37e8e0e..592fcff 100644
--- a/src/ftbench.c
+++ b/src/ftbench.c
@@ -198,19 +198,11 @@
   static double
   get_time( void )
   {
-#if defined _POSIX_TIMERS && _POSIX_TIMERS > 0
-    struct timespec  tv;
-
-
-#ifdef _POSIX_CPUTIME
-    clock_gettime( CLOCK_PROCESS_CPUTIME_ID, &tv );
-#else
-    clock_gettime( CLOCK_REALTIME, &tv );
-#endif /* _POSIX_CPUTIME */
-
-    return 1E6 * (double)tv.tv_sec + 1E-3 * (double)tv.tv_nsec;
-
-#elif defined _WIN32
+/* NOTE: When building with the Mingw64 toolchain, _POSIX_TIMERS
+ * will be defined, but clock_gettime() won't, so ensure that the
+ * _WIN32 specific timer code appears first here.
+ */
+#if defined _WIN32
 
 #ifdef QPC
     LARGE_INTEGER  ticks;
@@ -238,6 +230,18 @@
 
 #endif
 
+#elif defined _POSIX_TIMERS && _POSIX_TIMERS > 0
+    struct timespec  tv;
+
+
+#ifdef _POSIX_CPUTIME
+    clock_gettime( CLOCK_PROCESS_CPUTIME_ID, &tv );
+#else
+    clock_gettime( CLOCK_REALTIME, &tv );
+#endif /* _POSIX_CPUTIME */
+
+    return 1E6 * (double)tv.tv_sec + 1E-3 * (double)tv.tv_nsec;
+
 #else
     /* clock() accuracy has improved since glibc 2.18 */
     return 1E6 * (double)clock() / (double)CLOCKS_PER_SEC;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]