@@ -1736,82 +1736,64 @@ if it is 1, the time is given in the DST time zone;\n\
1736
1736
if it is -1, mktime() should guess based on the date and time.\n" );
1737
1737
1738
1738
1739
-
1740
- static struct PyModuleDef timemodule = {
1741
- PyModuleDef_HEAD_INIT ,
1742
- "time" ,
1743
- module_doc ,
1744
- -1 ,
1745
- time_methods ,
1746
- NULL ,
1747
- NULL ,
1748
- NULL ,
1749
- NULL
1750
- };
1751
-
1752
- PyMODINIT_FUNC
1753
- PyInit_time (void )
1739
+ static int
1740
+ time_exec (PyObject * module )
1754
1741
{
1755
- PyObject * m ;
1756
- m = PyModule_Create (& timemodule );
1757
- if (m == NULL )
1758
- return NULL ;
1759
-
1760
1742
/* Set, or reset, module variables like time.timezone */
1761
- if (init_timezone (m ) < 0 ) {
1762
- goto error ;
1743
+ if (init_timezone (module ) < 0 ) {
1744
+ return -1 ;
1763
1745
}
1764
1746
1765
1747
#if defined(HAVE_CLOCK_GETTIME ) || defined(HAVE_CLOCK_SETTIME ) || defined(HAVE_CLOCK_GETRES )
1766
1748
1767
1749
#ifdef CLOCK_REALTIME
1768
- if (PyModule_AddIntMacro (m , CLOCK_REALTIME ) < 0 ) {
1769
- goto error ;
1750
+ if (PyModule_AddIntMacro (module , CLOCK_REALTIME ) < 0 ) {
1751
+ return -1 ;
1770
1752
}
1771
1753
#endif
1772
1754
#ifdef CLOCK_MONOTONIC
1773
- if (PyModule_AddIntMacro (m , CLOCK_MONOTONIC ) < 0 ) {
1774
- goto error ;
1755
+ if (PyModule_AddIntMacro (module , CLOCK_MONOTONIC ) < 0 ) {
1756
+ return -1 ;
1775
1757
}
1776
1758
#endif
1777
1759
#ifdef CLOCK_MONOTONIC_RAW
1778
- if (PyModule_AddIntMacro (m , CLOCK_MONOTONIC_RAW ) < 0 ) {
1779
- goto error ;
1760
+ if (PyModule_AddIntMacro (module , CLOCK_MONOTONIC_RAW ) < 0 ) {
1761
+ return -1 ;
1780
1762
}
1781
1763
#endif
1782
1764
#ifdef CLOCK_HIGHRES
1783
- if (PyModule_AddIntMacro (m , CLOCK_HIGHRES ) < 0 ) {
1784
- goto error ;
1765
+ if (PyModule_AddIntMacro (module , CLOCK_HIGHRES ) < 0 ) {
1766
+ return -1 ;
1785
1767
}
1786
1768
#endif
1787
1769
#ifdef CLOCK_PROCESS_CPUTIME_ID
1788
- if (PyModule_AddIntMacro (m , CLOCK_PROCESS_CPUTIME_ID ) < 0 ) {
1789
- goto error ;
1770
+ if (PyModule_AddIntMacro (module , CLOCK_PROCESS_CPUTIME_ID ) < 0 ) {
1771
+ return -1 ;
1790
1772
}
1791
1773
#endif
1792
1774
#ifdef CLOCK_THREAD_CPUTIME_ID
1793
- if (PyModule_AddIntMacro (m , CLOCK_THREAD_CPUTIME_ID ) < 0 ) {
1794
- goto error ;
1775
+ if (PyModule_AddIntMacro (module , CLOCK_THREAD_CPUTIME_ID ) < 0 ) {
1776
+ return -1 ;
1795
1777
}
1796
1778
#endif
1797
1779
#ifdef CLOCK_PROF
1798
- if (PyModule_AddIntMacro (m , CLOCK_PROF ) < 0 ) {
1799
- goto error ;
1780
+ if (PyModule_AddIntMacro (module , CLOCK_PROF ) < 0 ) {
1781
+ return -1 ;
1800
1782
}
1801
1783
#endif
1802
1784
#ifdef CLOCK_BOOTTIME
1803
- if (PyModule_AddIntMacro (m , CLOCK_BOOTTIME ) < 0 ) {
1804
- goto error ;
1785
+ if (PyModule_AddIntMacro (module , CLOCK_BOOTTIME ) < 0 ) {
1786
+ return -1 ;
1805
1787
}
1806
1788
#endif
1807
1789
#ifdef CLOCK_UPTIME
1808
- if (PyModule_AddIntMacro (m , CLOCK_UPTIME ) < 0 ) {
1809
- goto error ;
1790
+ if (PyModule_AddIntMacro (module , CLOCK_UPTIME ) < 0 ) {
1791
+ return -1 ;
1810
1792
}
1811
1793
#endif
1812
1794
#ifdef CLOCK_UPTIME_RAW
1813
- if (PyModule_AddIntMacro (m , CLOCK_UPTIME_RAW ) < 0 ) {
1814
- goto error ;
1795
+ if (PyModule_AddIntMacro (module , CLOCK_UPTIME_RAW ) < 0 ) {
1796
+ return -1 ;
1815
1797
}
1816
1798
#endif
1817
1799
@@ -1820,16 +1802,16 @@ PyInit_time(void)
1820
1802
if (!initialized ) {
1821
1803
if (PyStructSequence_InitType2 (& StructTimeType ,
1822
1804
& struct_time_type_desc ) < 0 ) {
1823
- goto error ;
1805
+ return -1 ;
1824
1806
}
1825
1807
}
1826
- if (PyModule_AddIntConstant (m , "_STRUCT_TM_ITEMS" , 11 )) {
1827
- goto error ;
1808
+ if (PyModule_AddIntConstant (module , "_STRUCT_TM_ITEMS" , 11 )) {
1809
+ return -1 ;
1828
1810
}
1829
1811
Py_INCREF (& StructTimeType );
1830
- if (PyModule_AddObject (m , "struct_time" , (PyObject * ) & StructTimeType )) {
1812
+ if (PyModule_AddObject (module , "struct_time" , (PyObject * ) & StructTimeType )) {
1831
1813
Py_DECREF (& StructTimeType );
1832
- goto error ;
1814
+ return -1 ;
1833
1815
}
1834
1816
initialized = 1 ;
1835
1817
@@ -1840,11 +1822,30 @@ PyInit_time(void)
1840
1822
utc_string = tm .tm_zone ;
1841
1823
#endif
1842
1824
1843
- return m ;
1825
+ return 0 ;
1826
+ }
1844
1827
1845
- error :
1846
- Py_DECREF (m );
1847
- return NULL ;
1828
+ static struct PyModuleDef_Slot time_slots [] = {
1829
+ {Py_mod_exec , time_exec },
1830
+ {0 , NULL }
1831
+ };
1832
+
1833
+ static struct PyModuleDef timemodule = {
1834
+ PyModuleDef_HEAD_INIT ,
1835
+ "time" ,
1836
+ module_doc ,
1837
+ 0 ,
1838
+ time_methods ,
1839
+ time_slots ,
1840
+ NULL ,
1841
+ NULL ,
1842
+ NULL
1843
+ };
1844
+
1845
+ PyMODINIT_FUNC
1846
+ PyInit_time (void )
1847
+ {
1848
+ return PyModuleDef_Init (& timemodule );
1848
1849
}
1849
1850
1850
1851
/* Implement pysleep() for various platforms.
0 commit comments