diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -59,6 +59,13 @@ #define JOIN_SET(p, flag) ((void*) ((Py_uintptr_t) (JOIN_OBJ(p)) | (flag))) #define JOIN_OBJ(p) ((PyObject*) ((Py_uintptr_t) (p) & ~(Py_uintptr_t)1)) +/* Types defined by this extension */ +static PyTypeObject Element_Type; +static PyTypeObject ElementIter_Type; +static PyTypeObject TreeBuilder_Type; +static PyTypeObject XMLParser_Type; + + /* glue functions (see the init function for details) */ static PyObject* elementtree_parseerror_obj; static PyObject* elementtree_deepcopy_obj; @@ -159,7 +166,6 @@ } ElementObject; -static PyTypeObject Element_Type; #define Element_CheckExact(op) (Py_TYPE(op) == &Element_Type) @@ -2182,8 +2188,6 @@ PyObject *end_ns_event_obj; } TreeBuilderObject; -static PyTypeObject TreeBuilder_Type; - #define TreeBuilder_CheckExact(op) (Py_TYPE(op) == &TreeBuilder_Type) /* -------------------------------------------------------------------- */ @@ -2693,8 +2697,6 @@ } XMLParserObject; -static PyTypeObject XMLParser_Type; - #define XMLParser_CheckExact(op) (Py_TYPE(op) == &XMLParser_Type) /* helpers */ @@ -3626,6 +3628,8 @@ PyObject *m, *temp; /* Initialize object types */ + if (PyType_Ready(&ElementIter_Type) < 0) + return NULL; if (PyType_Ready(&TreeBuilder_Type) < 0) return NULL; if (PyType_Ready(&Element_Type) < 0)