Skip to content

Commit 016bdd5

Browse files
authored
bpo-40024: Update _elementtree to use PyModule_AddType() (GH-19205)
1 parent 34a49aa commit 016bdd5

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

Modules/_elementtree.c

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4419,16 +4419,22 @@ PyInit__elementtree(void)
44194419
"xml.etree.ElementTree.ParseError", PyExc_SyntaxError, NULL
44204420
);
44214421
Py_INCREF(st->parseerror_obj);
4422-
PyModule_AddObject(m, "ParseError", st->parseerror_obj);
4423-
4424-
Py_INCREF((PyObject *)&Element_Type);
4425-
PyModule_AddObject(m, "Element", (PyObject *)&Element_Type);
4422+
if (PyModule_AddObject(m, "ParseError", st->parseerror_obj) < 0) {
4423+
Py_DECREF(st->parseerror_obj);
4424+
return NULL;
4425+
}
44264426

4427-
Py_INCREF((PyObject *)&TreeBuilder_Type);
4428-
PyModule_AddObject(m, "TreeBuilder", (PyObject *)&TreeBuilder_Type);
4427+
PyTypeObject *types[] = {
4428+
&Element_Type,
4429+
&TreeBuilder_Type,
4430+
&XMLParser_Type
4431+
};
44294432

4430-
Py_INCREF((PyObject *)&XMLParser_Type);
4431-
PyModule_AddObject(m, "XMLParser", (PyObject *)&XMLParser_Type);
4433+
for (size_t i = 0; i < Py_ARRAY_LENGTH(types); i++) {
4434+
if (PyModule_AddType(m, types[i]) < 0) {
4435+
return NULL;
4436+
}
4437+
}
44324438

44334439
return m;
44344440
}

0 commit comments

Comments
 (0)