]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fixed totally bogus conversion factors used in the Win32 version of
authorGuido van Rossum <guido@python.org>
Tue, 16 Feb 1999 14:37:28 +0000 (14:37 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 16 Feb 1999 14:37:28 +0000 (14:37 +0000)
os.times().

Modules/posixmodule.c

index 013e3b17d367d03951ef3d36e2d668299c032778..8dc079e618f6f08e26af7b61896a466441aabceb 100644 (file)
@@ -2193,11 +2193,18 @@ posix_times(self, args)
        if (!PyArg_NoArgs(args))
                return NULL;
        hProc = GetCurrentProcess();
-       GetProcessTimes(hProc,&create, &exit, &kernel, &user);
+       GetProcessTimes(hProc, &create, &exit, &kernel, &user);
+       /* The fields of a FILETIME structure are the hi and lo part
+          of a 64-bit value expressed in 100 nanosecond units.
+          1e7 is one second in such units; 1e-7 the inverse.
+          429.4967296 is 2**32 / 1e7 or 2**32 * 1e-7.
+       */
        return Py_BuildValue(
                "ddddd",
-               (double)(kernel.dwHighDateTime*2E32+kernel.dwLowDateTime)/2E6,
-               (double)(user.dwHighDateTime*2E32+user.dwLowDateTime) / 2E6,
+               (double)(kernel.dwHighDateTime*429.4967296 +
+                        kernel.dwLowDateTime*1e-7),
+               (double)(user.dwHighDateTime*429.4967296 +
+                        user.dwLowDateTime*1e-7),
                (double)0,
                (double)0,
                (double)0);