]> granicus.if.org Git - python/commitdiff
tmtotuple(): use time_t for gmtoff (#1276)
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 24 Apr 2017 23:22:42 +0000 (01:22 +0200)
committerGitHub <noreply@github.com>
Mon, 24 Apr 2017 23:22:42 +0000 (01:22 +0200)
timegm() return type is time_t, not int. Use time_t to prevent the
following compiler warning on Windows:

timemodule.c: warning C4244: '=': conversion from 'time_t' to 'int',
              possible loss of data

Modules/timemodule.c

index 423c001e2bbbd91b4d5bd748f50194771890f10d..32062a3a6a7f7b7e36f453706af71191bc7423bb 100644 (file)
@@ -278,7 +278,7 @@ static PyTypeObject StructTimeType;
 static PyObject *
 tmtotuple(struct tm *p
 #ifndef HAVE_STRUCT_TM_TM_ZONE
-        , const char *zone, int gmtoff
+        , const char *zone, time_t gmtoff
 #endif
 )
 {
@@ -304,7 +304,7 @@ tmtotuple(struct tm *p
 #else
     PyStructSequence_SET_ITEM(v, 9,
         PyUnicode_DecodeLocale(zone, "surrogateescape"));
-    SET(10, gmtoff);
+    PyStructSequence_SET_ITEM(v, 10, _PyLong_FromTime_t(gmtoff));
 #endif /* HAVE_STRUCT_TM_TM_ZONE */
 #undef SET
     if (PyErr_Occurred()) {
@@ -396,7 +396,7 @@ time_localtime(PyObject *self, PyObject *args)
     {
         struct tm local = buf;
         char zone[100];
-        int gmtoff;
+        time_t gmtoff;
         strftime(zone, sizeof(zone), "%Z", &buf);
         gmtoff = timegm(&buf) - when;
         return tmtotuple(&local, zone, gmtoff);