@@ -27,52 +27,55 @@ static PyMethodDef _contextvars_methods[] = {
27
27
{NULL , NULL }
28
28
};
29
29
30
- static struct PyModuleDef _contextvarsmodule = {
31
- PyModuleDef_HEAD_INIT , /* m_base */
32
- "_contextvars" , /* m_name */
33
- module_doc , /* m_doc */
34
- -1 , /* m_size */
35
- _contextvars_methods , /* m_methods */
36
- NULL , /* m_slots */
37
- NULL , /* m_traverse */
38
- NULL , /* m_clear */
39
- NULL , /* m_free */
40
- };
41
-
42
- PyMODINIT_FUNC
43
- PyInit__contextvars (void )
30
+ static int
31
+ _contextvars_exec (PyObject * m )
44
32
{
45
- PyObject * m = PyModule_Create (& _contextvarsmodule );
46
- if (m == NULL ) {
47
- return NULL ;
48
- }
49
-
50
33
Py_INCREF (& PyContext_Type );
51
34
if (PyModule_AddObject (m , "Context" ,
52
35
(PyObject * )& PyContext_Type ) < 0 )
53
36
{
54
37
Py_DECREF (& PyContext_Type );
55
- Py_DECREF (m );
56
- return NULL ;
38
+ return -1 ;
57
39
}
58
40
59
41
Py_INCREF (& PyContextVar_Type );
60
42
if (PyModule_AddObject (m , "ContextVar" ,
61
43
(PyObject * )& PyContextVar_Type ) < 0 )
62
44
{
63
45
Py_DECREF (& PyContextVar_Type );
64
- Py_DECREF (m );
65
- return NULL ;
46
+ return -1 ;
66
47
}
67
48
68
49
Py_INCREF (& PyContextToken_Type );
69
50
if (PyModule_AddObject (m , "Token" ,
70
51
(PyObject * )& PyContextToken_Type ) < 0 )
71
52
{
72
53
Py_DECREF (& PyContextToken_Type );
73
- Py_DECREF (m );
74
- return NULL ;
54
+ return -1 ;
75
55
}
76
56
77
- return m ;
57
+ return 0 ;
58
+ }
59
+
60
+ static struct PyModuleDef_Slot _contextvars_slots [] = {
61
+ {Py_mod_exec , _contextvars_exec },
62
+ {0 , NULL }
63
+ };
64
+
65
+ static struct PyModuleDef _contextvarsmodule = {
66
+ PyModuleDef_HEAD_INIT , /* m_base */
67
+ "_contextvars" , /* m_name */
68
+ module_doc , /* m_doc */
69
+ 0 , /* m_size */
70
+ _contextvars_methods , /* m_methods */
71
+ _contextvars_slots , /* m_slots */
72
+ NULL , /* m_traverse */
73
+ NULL , /* m_clear */
74
+ NULL , /* m_free */
75
+ };
76
+
77
+ PyMODINIT_FUNC
78
+ PyInit__contextvars (void )
79
+ {
80
+ return PyModuleDef_Init (& _contextvarsmodule );
78
81
}
0 commit comments