[Python-checkins] cpython: Issue #23451, #22117: Python 3.5 now requires Windows Vista or newer, so

victor.stinner python-checkins at python.org
Fri Mar 27 14:29:46 CET 2015


https://hg.python.org/cpython/rev/f64d0b99d405
changeset:   95214:f64d0b99d405
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Fri Mar 27 14:12:08 2015 +0100
summary:
  Issue #23451, #22117: Python 3.5 now requires Windows Vista or newer, so
GetTickCount64() is now always available.

files:
  Python/pytime.c |  49 +-----------------------------------
  1 files changed, 2 insertions(+), 47 deletions(-)


diff --git a/Python/pytime.c b/Python/pytime.c
--- a/Python/pytime.c
+++ b/Python/pytime.c
@@ -19,10 +19,6 @@
 #define MS_TO_NS (MS_TO_US * US_TO_NS)
 #define SEC_TO_NS (SEC_TO_MS * MS_TO_NS)
 
-#ifdef MS_WINDOWS
-static OSVERSIONINFOEX winver;
-#endif
-
 static int
 pygettimeofday(_PyTime_timeval *tp, _Py_clock_info_t *info, int raise)
 {
@@ -542,41 +538,11 @@
     static _PyTime_t last = 0;
 #endif
 #if defined(MS_WINDOWS)
-    static ULONGLONG (*GetTickCount64) (void) = NULL;
-    static ULONGLONG (CALLBACK *Py_GetTickCount64)(void);
-    static int has_gettickcount64 = -1;
     ULONGLONG result;
 
     assert(info == NULL || raise);
 
-    if (has_gettickcount64 == -1) {
-        /* GetTickCount64() was added to Windows Vista */
-        has_gettickcount64 = (winver.dwMajorVersion >= 6);
-        if (has_gettickcount64) {
-            HINSTANCE hKernel32;
-            hKernel32 = GetModuleHandleW(L"KERNEL32");
-            *(FARPROC*)&Py_GetTickCount64 = GetProcAddress(hKernel32,
-                                                           "GetTickCount64");
-            assert(Py_GetTickCount64 != NULL);
-        }
-    }
-
-    if (has_gettickcount64) {
-        result = Py_GetTickCount64();
-    }
-    else {
-        static DWORD last_ticks = 0;
-        static DWORD n_overflow = 0;
-        DWORD ticks;
-
-        ticks = GetTickCount();
-        if (ticks < last_ticks)
-            n_overflow++;
-        last_ticks = ticks;
-
-        result = (ULONGLONG)n_overflow << 32;
-        result += ticks;
-    }
+    result = GetTickCount64();
 
     *tp = result * MS_TO_NS;
     if (*tp / MS_TO_NS != result) {
@@ -591,10 +557,7 @@
     if (info) {
         DWORD timeAdjustment, timeIncrement;
         BOOL isTimeAdjustmentDisabled, ok;
-        if (has_gettickcount64)
-            info->implementation = "GetTickCount64()";
-        else
-            info->implementation = "GetTickCount()";
+        info->implementation = "GetTickCount64()";
         info->monotonic = 1;
         ok = GetSystemTimeAdjustment(&timeAdjustment, &timeIncrement,
                                      &isTimeAdjustmentDisabled);
@@ -692,14 +655,6 @@
     _PyTime_timeval tv;
     _PyTime_t t;
 
-#ifdef MS_WINDOWS
-    winver.dwOSVersionInfoSize = sizeof(winver);
-    if (!GetVersionEx((OSVERSIONINFO*)&winver)) {
-        PyErr_SetFromWindowsErr(0);
-        return -1;
-    }
-#endif
-
     /* ensure that the system clock works */
     if (_PyTime_gettimeofday_info(&tv, NULL) < 0)
         return -1;

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list