@@ -503,10 +503,10 @@ raise_type_error(PyObject *element)
503503}
504504
505505LOCAL (int )
506- element_add_subelement (ElementObject * self , PyObject * element )
506+ element_add_subelement (elementtreestate * st , ElementObject * self ,
507+ PyObject * element )
507508{
508509 /* add a child element to a parent */
509- elementtreestate * st = ET_STATE_GLOBAL ;
510510 if (!Element_Check (st , element )) {
511511 raise_type_error (element );
512512 return -1 ;
@@ -618,7 +618,7 @@ subelement(PyObject *self, PyObject *args, PyObject *kwds)
618618 if (elem == NULL )
619619 return NULL ;
620620
621- if (element_add_subelement (parent , elem ) < 0 ) {
621+ if (element_add_subelement (st , parent , elem ) < 0 ) {
622622 Py_DECREF (elem );
623623 return NULL ;
624624 }
@@ -693,7 +693,8 @@ static PyObject *
693693_elementtree_Element_append_impl (ElementObject * self , PyObject * subelement )
694694/*[clinic end generated code: output=54a884b7cf2295f4 input=439f2bd777288fb6]*/
695695{
696- if (element_add_subelement (self , subelement ) < 0 )
696+ elementtreestate * st = ET_STATE_GLOBAL ;
697+ if (element_add_subelement (st , self , subelement ) < 0 )
697698 return NULL ;
698699
699700 Py_RETURN_NONE ;
@@ -1190,9 +1191,10 @@ _elementtree_Element_extend(ElementObject *self, PyObject *elements)
11901191 return NULL ;
11911192 }
11921193
1194+ elementtreestate * st = ET_STATE_GLOBAL ;
11931195 for (i = 0 ; i < PySequence_Fast_GET_SIZE (seq ); i ++ ) {
11941196 PyObject * element = Py_NewRef (PySequence_Fast_GET_ITEM (seq , i ));
1195- if (element_add_subelement (self , element ) < 0 ) {
1197+ if (element_add_subelement (st , self , element ) < 0 ) {
11961198 Py_DECREF (seq );
11971199 Py_DECREF (element );
11981200 return NULL ;
@@ -2591,7 +2593,7 @@ treebuilder_add_subelement(elementtreestate *st, PyObject *element,
25912593{
25922594 if (Element_CheckExact (st , element )) {
25932595 ElementObject * elem = (ElementObject * ) element ;
2594- return element_add_subelement (elem , child );
2596+ return element_add_subelement (st , elem , child );
25952597 }
25962598 else {
25972599 PyObject * res ;
0 commit comments