Skip to content

Commit ae49eaf

Browse files
committed
fix macro & other PR suggestions
1 parent 22025f9 commit ae49eaf

File tree

1 file changed

+38
-41
lines changed

1 file changed

+38
-41
lines changed

Modules/_datetimemodule.c

+38-41
Original file line numberDiff line numberDiff line change
@@ -6524,56 +6524,44 @@ _datetime_exec(PyObject *module)
65246524
}
65256525
Py_INCREF(&PyDateTime_IsoCalendarDateType);
65266526

6527-
6528-
PyObject *x = NULL;
6529-
6530-
#define DATETIME_ADD_MACRO(x, c) \
6531-
do { \
6532-
if (x == NULL) { \
6533-
return -1; \
6534-
} \
6535-
if (PyDict_SetItemString(d, c, x) < 0) { \
6536-
Py_DECREF(x); \
6537-
return -1; \
6538-
} \
6539-
Py_DECREF(x); \
6527+
#define DATETIME_ADD_MACRO(dict, c, value) \
6528+
do { \
6529+
if (value == NULL) { \
6530+
return -1; \
6531+
} \
6532+
if (PyDict_SetItemString(dict, c, value) < 0) { \
6533+
Py_DECREF(value); \
6534+
return -1; \
6535+
} \
6536+
Py_DECREF(value); \
65406537
} while(0)
65416538

65426539
/* timedelta values */
65436540
PyObject *d = PyDateTime_DeltaType.tp_dict;
6544-
x = new_delta(0, 0, 1, 0);
6545-
DATETIME_ADD_MACRO(x, "resolution");
6546-
x = new_delta(-MAX_DELTA_DAYS, 0, 0, 0);
6547-
DATETIME_ADD_MACRO(x, "min");
6548-
x = new_delta(MAX_DELTA_DAYS, 24*3600-1, 1000000-1, 0);
6549-
DATETIME_ADD_MACRO(x, "max");
6541+
DATETIME_ADD_MACRO(d, "resolution", new_delta(0, 0, 1, 0));
6542+
DATETIME_ADD_MACRO(d, "min", new_delta(-MAX_DELTA_DAYS, 0, 0, 0));
6543+
DATETIME_ADD_MACRO(d, "max",
6544+
new_delta(MAX_DELTA_DAYS, 24*3600-1, 1000000-1, 0));
65506545

65516546
/* date values */
65526547
d = PyDateTime_DateType.tp_dict;
6553-
x = new_date(1, 1, 1);
6554-
DATETIME_ADD_MACRO(x, "min");
6555-
x = new_date(MAXYEAR, 12, 31);
6556-
DATETIME_ADD_MACRO(x, "max");
6557-
x = new_delta(1, 0, 0, 0);
6558-
DATETIME_ADD_MACRO(x, "resolution");
6548+
DATETIME_ADD_MACRO(d, "min", new_date(1, 1, 1));
6549+
DATETIME_ADD_MACRO(d, "max", new_date(MAXYEAR, 12, 31));
6550+
DATETIME_ADD_MACRO(d, "resolution", new_delta(1, 0, 0, 0));
65596551

65606552
/* time values */
65616553
d = PyDateTime_TimeType.tp_dict;
6562-
x = new_time(0, 0, 0, 0, Py_None, 0);
6563-
DATETIME_ADD_MACRO(x, "min");
6564-
x = new_time(23, 59, 59, 999999, Py_None, 0);
6565-
DATETIME_ADD_MACRO(x, "max");
6566-
x = new_delta(0, 0, 1, 0);
6567-
DATETIME_ADD_MACRO(x, "resolution");
6554+
DATETIME_ADD_MACRO(d, "min", new_time(0, 0, 0, 0, Py_None, 0));
6555+
DATETIME_ADD_MACRO(d, "max", new_time(23, 59, 59, 999999, Py_None, 0));
6556+
DATETIME_ADD_MACRO(d, "resolution", new_delta(0, 0, 1, 0));
65686557

65696558
/* datetime values */
65706559
d = PyDateTime_DateTimeType.tp_dict;
6571-
x = new_datetime(1, 1, 1, 0, 0, 0, 0, Py_None, 0);
6572-
DATETIME_ADD_MACRO(x, "min");
6573-
x = new_datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999, Py_None, 0);
6574-
DATETIME_ADD_MACRO(x, "max");
6575-
x = new_delta(0, 0, 1, 0);
6576-
DATETIME_ADD_MACRO(x, "resolution");
6560+
DATETIME_ADD_MACRO(d, "min",
6561+
new_datetime(1, 1, 1, 0, 0, 0, 0, Py_None, 0));
6562+
DATETIME_ADD_MACRO(d, "max", new_datetime(MAXYEAR, 12, 31, 23, 59, 59,
6563+
999999, Py_None, 0));
6564+
DATETIME_ADD_MACRO(d, "resolution", new_delta(0, 0, 1, 0));
65776565

65786566
/* timezone values */
65796567
d = PyDateTime_TimeZoneType.tp_dict;
@@ -6582,7 +6570,7 @@ _datetime_exec(PyObject *module)
65826570
return -1;
65836571
}
65846572

6585-
x = create_timezone(delta, NULL);
6573+
PyObject *x = create_timezone(delta, NULL);
65866574
Py_DECREF(delta);
65876575
if (x == NULL) {
65886576
return -1;
@@ -6602,17 +6590,26 @@ _datetime_exec(PyObject *module)
66026590
if (delta == NULL) {
66036591
return -1;
66046592
}
6593+
66056594
x = create_timezone(delta, NULL);
66066595
Py_DECREF(delta);
6607-
DATETIME_ADD_MACRO(x, "min");
6596+
if (x == NULL) {
6597+
return -1;
6598+
}
6599+
DATETIME_ADD_MACRO(d, "min", x);
66086600

66096601
delta = new_delta(0, (23 * 60 + 59) * 60, 0, 0); /* +23:59 */
66106602
if (delta == NULL) {
66116603
return -1;
66126604
}
6605+
66136606
x = create_timezone(delta, NULL);
66146607
Py_DECREF(delta);
6615-
DATETIME_ADD_MACRO(x, "max");
6608+
if (x == NULL) {
6609+
return -1;
6610+
}
6611+
6612+
DATETIME_ADD_MACRO(d, "max", x);
66166613

66176614
/* Epoch */
66186615
PyDateTime_Epoch = new_datetime(1970, 1, 1, 0, 0, 0, 0,
@@ -6635,7 +6632,7 @@ _datetime_exec(PyObject *module)
66356632
}
66366633

66376634
if (PyModule_AddObject(module, "datetime_CAPI", x) < 0) {
6638-
Py_XDECREF(x);
6635+
Py_DECREF(x);
66396636
return -1;
66406637
}
66416638

0 commit comments

Comments
 (0)