@@ -4312,19 +4312,6 @@ static PyMethodDef _functions[] = {
4312
4312
{NULL , NULL }
4313
4313
};
4314
4314
4315
-
4316
- static struct PyModuleDef elementtreemodule = {
4317
- PyModuleDef_HEAD_INIT ,
4318
- "_elementtree" ,
4319
- NULL ,
4320
- sizeof (elementtreestate ),
4321
- _functions ,
4322
- NULL ,
4323
- elementtree_traverse ,
4324
- elementtree_clear ,
4325
- elementtree_free
4326
- };
4327
-
4328
4315
#define CREATE_TYPE (module , type , spec ) \
4329
4316
do { \
4330
4317
if (type != NULL) { \
@@ -4336,21 +4323,10 @@ do { \
4336
4323
} \
4337
4324
} while (0)
4338
4325
4339
- PyMODINIT_FUNC
4340
- PyInit__elementtree ( void )
4326
+ static int
4327
+ module_exec ( PyObject * m )
4341
4328
{
4342
- PyObject * m = NULL ;
4343
- elementtreestate * st = NULL ;
4344
-
4345
- m = PyState_FindModule (& elementtreemodule );
4346
- if (m ) {
4347
- return Py_NewRef (m );
4348
- }
4349
-
4350
- m = PyModule_Create (& elementtreemodule );
4351
- if (!m )
4352
- goto error ;
4353
- st = get_elementtree_state (m );
4329
+ elementtreestate * st = get_elementtree_state (m );
4354
4330
4355
4331
/* Initialize object types */
4356
4332
CREATE_TYPE (m , st -> ElementIter_Type , & elementiter_spec );
@@ -4435,9 +4411,30 @@ PyInit__elementtree(void)
4435
4411
}
4436
4412
}
4437
4413
4438
- return m ;
4414
+ return 0 ;
4439
4415
4440
4416
error :
4441
- Py_XDECREF (m );
4442
- return NULL ;
4417
+ return -1 ;
4418
+ }
4419
+
4420
+ static struct PyModuleDef_Slot elementtree_slots [] = {
4421
+ {Py_mod_exec , module_exec },
4422
+ {0 , NULL },
4423
+ };
4424
+
4425
+ static struct PyModuleDef elementtreemodule = {
4426
+ .m_base = PyModuleDef_HEAD_INIT ,
4427
+ .m_name = "_elementtree" ,
4428
+ .m_size = sizeof (elementtreestate ),
4429
+ .m_methods = _functions ,
4430
+ .m_slots = elementtree_slots ,
4431
+ .m_traverse = elementtree_traverse ,
4432
+ .m_clear = elementtree_clear ,
4433
+ .m_free = elementtree_free ,
4434
+ };
4435
+
4436
+ PyMODINIT_FUNC
4437
+ PyInit__elementtree (void )
4438
+ {
4439
+ return PyModuleDef_Init (& elementtreemodule );
4443
4440
}
0 commit comments