@@ -6524,56 +6524,44 @@ _datetime_exec(PyObject *module)
6524
6524
}
6525
6525
Py_INCREF (& PyDateTime_IsoCalendarDateType );
6526
6526
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); \
6540
6537
} while(0)
6541
6538
6542
6539
/* timedelta values */
6543
6540
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 ));
6550
6545
6551
6546
/* date values */
6552
6547
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 ));
6559
6551
6560
6552
/* time values */
6561
6553
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 ));
6568
6557
6569
6558
/* datetime values */
6570
6559
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 ));
6577
6565
6578
6566
/* timezone values */
6579
6567
d = PyDateTime_TimeZoneType .tp_dict ;
@@ -6582,7 +6570,7 @@ _datetime_exec(PyObject *module)
6582
6570
return -1 ;
6583
6571
}
6584
6572
6585
- x = create_timezone (delta , NULL );
6573
+ PyObject * x = create_timezone (delta , NULL );
6586
6574
Py_DECREF (delta );
6587
6575
if (x == NULL ) {
6588
6576
return -1 ;
@@ -6602,17 +6590,26 @@ _datetime_exec(PyObject *module)
6602
6590
if (delta == NULL ) {
6603
6591
return -1 ;
6604
6592
}
6593
+
6605
6594
x = create_timezone (delta , NULL );
6606
6595
Py_DECREF (delta );
6607
- DATETIME_ADD_MACRO (x , "min" );
6596
+ if (x == NULL ) {
6597
+ return -1 ;
6598
+ }
6599
+ DATETIME_ADD_MACRO (d , "min" , x );
6608
6600
6609
6601
delta = new_delta (0 , (23 * 60 + 59 ) * 60 , 0 , 0 ); /* +23:59 */
6610
6602
if (delta == NULL ) {
6611
6603
return -1 ;
6612
6604
}
6605
+
6613
6606
x = create_timezone (delta , NULL );
6614
6607
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 );
6616
6613
6617
6614
/* Epoch */
6618
6615
PyDateTime_Epoch = new_datetime (1970 , 1 , 1 , 0 , 0 , 0 , 0 ,
@@ -6635,7 +6632,7 @@ _datetime_exec(PyObject *module)
6635
6632
}
6636
6633
6637
6634
if (PyModule_AddObject (module , "datetime_CAPI" , x ) < 0 ) {
6638
- Py_XDECREF (x );
6635
+ Py_DECREF (x );
6639
6636
return -1 ;
6640
6637
}
6641
6638
0 commit comments