@@ -1759,52 +1759,78 @@ PyInit_time(void)
1759
1759
1760
1760
/* Set, or reset, module variables like time.timezone */
1761
1761
if (init_timezone (m ) < 0 ) {
1762
- return NULL ;
1762
+ goto error ;
1763
1763
}
1764
1764
1765
1765
#if defined(HAVE_CLOCK_GETTIME ) || defined(HAVE_CLOCK_SETTIME ) || defined(HAVE_CLOCK_GETRES )
1766
1766
1767
1767
#ifdef CLOCK_REALTIME
1768
- PyModule_AddIntMacro (m , CLOCK_REALTIME );
1768
+ if (PyModule_AddIntMacro (m , CLOCK_REALTIME ) < 0 ) {
1769
+ goto error ;
1770
+ }
1769
1771
#endif
1770
1772
#ifdef CLOCK_MONOTONIC
1771
- PyModule_AddIntMacro (m , CLOCK_MONOTONIC );
1773
+ if (PyModule_AddIntMacro (m , CLOCK_MONOTONIC ) < 0 ) {
1774
+ goto error ;
1775
+ }
1772
1776
#endif
1773
1777
#ifdef CLOCK_MONOTONIC_RAW
1774
- PyModule_AddIntMacro (m , CLOCK_MONOTONIC_RAW );
1778
+ if (PyModule_AddIntMacro (m , CLOCK_MONOTONIC_RAW ) < 0 ) {
1779
+ goto error ;
1780
+ }
1775
1781
#endif
1776
1782
#ifdef CLOCK_HIGHRES
1777
- PyModule_AddIntMacro (m , CLOCK_HIGHRES );
1783
+ if (PyModule_AddIntMacro (m , CLOCK_HIGHRES ) < 0 ) {
1784
+ goto error ;
1785
+ }
1778
1786
#endif
1779
1787
#ifdef CLOCK_PROCESS_CPUTIME_ID
1780
- PyModule_AddIntMacro (m , CLOCK_PROCESS_CPUTIME_ID );
1788
+ if (PyModule_AddIntMacro (m , CLOCK_PROCESS_CPUTIME_ID ) < 0 ) {
1789
+ goto error ;
1790
+ }
1781
1791
#endif
1782
1792
#ifdef CLOCK_THREAD_CPUTIME_ID
1783
- PyModule_AddIntMacro (m , CLOCK_THREAD_CPUTIME_ID );
1793
+ if (PyModule_AddIntMacro (m , CLOCK_THREAD_CPUTIME_ID ) < 0 ) {
1794
+ goto error ;
1795
+ }
1784
1796
#endif
1785
1797
#ifdef CLOCK_PROF
1786
- PyModule_AddIntMacro (m , CLOCK_PROF );
1798
+ if (PyModule_AddIntMacro (m , CLOCK_PROF ) < 0 ) {
1799
+ goto error ;
1800
+ }
1787
1801
#endif
1788
1802
#ifdef CLOCK_BOOTTIME
1789
- PyModule_AddIntMacro (m , CLOCK_BOOTTIME );
1803
+ if (PyModule_AddIntMacro (m , CLOCK_BOOTTIME ) < 0 ) {
1804
+ goto error ;
1805
+ }
1790
1806
#endif
1791
1807
#ifdef CLOCK_UPTIME
1792
- PyModule_AddIntMacro (m , CLOCK_UPTIME );
1808
+ if (PyModule_AddIntMacro (m , CLOCK_UPTIME ) < 0 ) {
1809
+ goto error ;
1810
+ }
1793
1811
#endif
1794
1812
#ifdef CLOCK_UPTIME_RAW
1795
- PyModule_AddIntMacro (m , CLOCK_UPTIME_RAW );
1813
+ if (PyModule_AddIntMacro (m , CLOCK_UPTIME_RAW ) < 0 ) {
1814
+ goto error ;
1815
+ }
1796
1816
#endif
1797
1817
1798
1818
#endif /* defined(HAVE_CLOCK_GETTIME) || defined(HAVE_CLOCK_SETTIME) || defined(HAVE_CLOCK_GETRES) */
1799
1819
1800
1820
if (!initialized ) {
1801
1821
if (PyStructSequence_InitType2 (& StructTimeType ,
1802
- & struct_time_type_desc ) < 0 )
1803
- return NULL ;
1822
+ & struct_time_type_desc ) < 0 ) {
1823
+ goto error ;
1824
+ }
1825
+ }
1826
+ if (PyModule_AddIntConstant (m , "_STRUCT_TM_ITEMS" , 11 )) {
1827
+ goto error ;
1804
1828
}
1805
1829
Py_INCREF (& StructTimeType );
1806
- PyModule_AddIntConstant (m , "_STRUCT_TM_ITEMS" , 11 );
1807
- PyModule_AddObject (m , "struct_time" , (PyObject * ) & StructTimeType );
1830
+ if (PyModule_AddObject (m , "struct_time" , (PyObject * ) & StructTimeType )) {
1831
+ Py_DECREF (& StructTimeType );
1832
+ goto error ;
1833
+ }
1808
1834
initialized = 1 ;
1809
1835
1810
1836
#if defined(__linux__ ) && !defined(__GLIBC__ )
@@ -1814,10 +1840,11 @@ PyInit_time(void)
1814
1840
utc_string = tm .tm_zone ;
1815
1841
#endif
1816
1842
1817
- if (PyErr_Occurred ()) {
1818
- return NULL ;
1819
- }
1820
1843
return m ;
1844
+
1845
+ error :
1846
+ Py_DECREF (m );
1847
+ return NULL ;
1821
1848
}
1822
1849
1823
1850
/* Implement pysleep() for various platforms.
0 commit comments