Skip to content

Commit a3e5749

Browse files
committed
Fixes from actually building on Windows.
1 parent 6704876 commit a3e5749

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

Modules/_datetimemodule.c

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3241,6 +3241,13 @@ date_new(PyTypeObject *type, PyObject *args, PyObject *kw)
32413241
return self;
32423242
}
32433243

3244+
static PyObject *add_datetime_timedelta(PyDateTime_DateTime *date,
3245+
PyDateTime_Delta *delta,
3246+
int factor);
3247+
static PyObject *
3248+
add_date_timedelta(PyDateTime_Date *date, PyDateTime_Delta *delta, int negate);
3249+
3250+
32443251
static PyObject *
32453252
date_fromtimestamp(PyObject *cls, PyObject *obj)
32463253
{
@@ -3259,8 +3266,9 @@ date_fromtimestamp(PyObject *cls, PyObject *obj)
32593266
tm.tm_mon + 1,
32603267
tm.tm_mday,
32613268
cls);
3262-
PyObject *delta = new_delta(0, t, 0, 1);
3263-
return add_datetime_timedelta(date, delta, 1);
3269+
int normalize = 1, negate = 0;
3270+
PyObject *delta = new_delta(0, (int)t, 0, normalize);
3271+
return add_date_timedelta(PyDate_CAST(date), PyDelta_CAST(delta), negate);
32643272
}
32653273
#endif
32663274

@@ -4084,9 +4092,6 @@ tzinfo_dst(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(dt))
40844092
}
40854093

40864094

4087-
static PyObject *add_datetime_timedelta(PyDateTime_DateTime *date,
4088-
PyDateTime_Delta *delta,
4089-
int factor);
40904095
static PyObject *datetime_utcoffset(PyObject *self, PyObject *);
40914096
static PyObject *datetime_dst(PyObject *self, PyObject *);
40924097

@@ -5544,16 +5549,15 @@ datetime_from_timestamp(PyObject *cls, TM_FUNC f, PyObject *timestamp,
55445549
long us;
55455550

55465551
#ifdef MS_WINDOWS
5547-
if (PyFloat_Check(timestamp)) {
5548-
if (PyFloat_AsDouble(timestamp) < 0) {
5549-
if (_PyTime_ObjectToTimeval(timestamp,
5550-
&timet, &us, _PyTime_ROUND_HALF_EVEN) == -1)
5551-
return NULL;
5552-
5553-
PyObject *dt = datetime_from_timet_and_us(cls, f, 0, 0, tzinfo);
5554-
PyObject *delta = new_delta(0, timet, us, 1);
5555-
return add_datetime_timedelta(date, delta, 1);
5556-
}
5552+
if (PyFloat_Check(timestamp) && PyFloat_AsDouble(timestamp) < 0) {
5553+
if (_PyTime_ObjectToTimeval(timestamp,
5554+
&timet, &us, _PyTime_ROUND_HALF_EVEN) == -1)
5555+
return NULL;
5556+
5557+
int normalize = 1, factor = 1;
5558+
PyObject *dt = datetime_from_timet_and_us(cls, f, 0, 0, tzinfo);
5559+
PyObject *delta = new_delta(0, (int)timet, us, normalize);
5560+
return add_datetime_timedelta(PyDateTime_CAST(dt), PyDelta_CAST(delta), factor);
55575561
}
55585562
#endif
55595563

0 commit comments

Comments
 (0)