summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/timemodule.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index b009ea1..6647ecc 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -147,28 +147,26 @@ time_clock(PyObject *self, PyObject *args)
static PyObject *
time_clock(PyObject *self, PyObject *args)
{
- static LONG_LONG ctrStart;
+ static LARGE_INTEGER ctrStart;
static double divisor = 0.0;
- LONG_LONG now;
+ LARGE_INTEGER now;
double diff;
- assert(sizeof(LONG_LONG) == sizeof(LARGE_INTEGER));
if (!PyArg_ParseTuple(args, ":clock"))
return NULL;
if (divisor == 0.0) {
- LONG_LONG freq;
- QueryPerformanceCounter((LARGE_INTEGER*)&ctrStart);
- if (!QueryPerformanceFrequency((LARGE_INTEGER*)&freq) ||
- freq == 0) {
+ LARGE_INTEGER freq;
+ QueryPerformanceCounter(&ctrStart);
+ if (!QueryPerformanceFrequency(&freq) || freq.QuadPart == 0) {
/* Unlikely to happen - this works on all intel
machines at least! Revert to clock() */
return PyFloat_FromDouble(clock());
}
- divisor = (double)freq;
+ divisor = (double)freq.QuadPart;
}
- QueryPerformanceCounter((LARGE_INTEGER*)&now);
- diff = (double)(now - ctrStart);
+ QueryPerformanceCounter(&now);
+ diff = (double)(now.QuadPart - ctrStart.QuadPart);
return PyFloat_FromDouble(diff / divisor);
}
@@ -220,7 +218,7 @@ static PyStructSequence_Desc struct_time_type_desc = {
struct_time_type_fields,
9,
};
-
+
static PyTypeObject StructTimeType;
static PyObject *
@@ -229,7 +227,7 @@ tmtotuple(struct tm *p)
PyObject *v = PyStructSequence_New(&StructTimeType);
if (v == NULL)
return NULL;
-
+
#define SET(i,val) PyStructSequence_SET_ITEM(v, i, PyInt_FromLong((long) val))
SET(0, p->tm_year + 1900);