Simplify, use GetSystemTimeAsFileTime().
authorTor Lillqvist <tml@iki.fi>
Thu, 31 Aug 2000 20:55:16 +0000 (20:55 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Thu, 31 Aug 2000 20:55:16 +0000 (20:55 +0000)
2000-08-31  Tor Lillqvist  <tml@iki.fi>

* gmain.c (g_get_current_time): (Win32): Simplify, use
GetSystemTimeAsFileTime().

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gmain.c
gmain.c

index acc00a9..2bd25cd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index acc00a9..2bd25cd 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index acc00a9..2bd25cd 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index acc00a9..2bd25cd 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index acc00a9..2bd25cd 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index acc00a9..2bd25cd 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index acc00a9..2bd25cd 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index acc00a9..2bd25cd 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gmain.c (g_get_current_time): (Win32): Simplify, use
+       GetSystemTimeAsFileTime().
+
 2000-08-27  Tor Lillqvist  <tml@iki.fi>
 
        * giowin32.c (g_io_channel_win32_poll): New function, otherwise
index 0258570..dafd09a 100644 (file)
@@ -629,26 +629,15 @@ g_get_current_time (GTimeVal *result)
   result->tv_sec = r.tv_sec;
   result->tv_usec = r.tv_usec;
 #else
-  /* Avoid calling time() except for the first time.
-   * GetTickCount() should be pretty fast and low-level?
-   * I could also use ftime() but it seems unnecessarily overheady.
-   */
-  static DWORD start_tick = 0;
-  static time_t start_time;
-  DWORD tick;
-
-  g_return_if_fail (result != NULL);
-  if (start_tick == 0)
-    {
-      start_tick = GetTickCount ();
-      time (&start_time);
-    }
+  FILETIME filetime;
+  gint64 t;
 
-  tick = GetTickCount ();
+  GetSystemTimeAsFileTime (&filetime);
+  t = ((gint64) filetime.dwLowDateTime) +
+    ((gint64) filetime.dwHighDateTime) * G_GINT64_CONSTANT (0x100000000);
 
-  result->tv_sec = (tick - start_tick) / 1000 + start_time;
-  result->tv_usec = ((tick - start_tick) % 1000) * 1000;
+  result->tv_sec = (t - G_GINT64_CONSTANT (0x19db1ded53e8000)) / 10000000;
+  result->tv_usec = (t % 10000000) / 10;
 #endif
 }
 
diff --git a/gmain.c b/gmain.c
index 0258570..dafd09a 100644 (file)
--- a/gmain.c
+++ b/gmain.c
@@ -629,26 +629,15 @@ g_get_current_time (GTimeVal *result)
   result->tv_sec = r.tv_sec;
   result->tv_usec = r.tv_usec;
 #else
-  /* Avoid calling time() except for the first time.
-   * GetTickCount() should be pretty fast and low-level?
-   * I could also use ftime() but it seems unnecessarily overheady.
-   */
-  static DWORD start_tick = 0;
-  static time_t start_time;
-  DWORD tick;
-
-  g_return_if_fail (result != NULL);
-  if (start_tick == 0)
-    {
-      start_tick = GetTickCount ();
-      time (&start_time);
-    }
+  FILETIME filetime;
+  gint64 t;
 
-  tick = GetTickCount ();
+  GetSystemTimeAsFileTime (&filetime);
+  t = ((gint64) filetime.dwLowDateTime) +
+    ((gint64) filetime.dwHighDateTime) * G_GINT64_CONSTANT (0x100000000);
 
-  result->tv_sec = (tick - start_tick) / 1000 + start_time;
-  result->tv_usec = ((tick - start_tick) % 1000) * 1000;
+  result->tv_sec = (t - G_GINT64_CONSTANT (0x19db1ded53e8000)) / 10000000;
+  result->tv_usec = (t % 10000000) / 10;
 #endif
 }