@@ -2289,6 +2289,7 @@ typedef struct {
22892289
22902290 char insert_comments ;
22912291 char insert_pis ;
2292+ elementtreestate * state ;
22922293} TreeBuilderObject ;
22932294
22942295#define TreeBuilder_CheckExact (st , op ) Py_IS_TYPE((op), (st)->TreeBuilder_Type)
@@ -2322,6 +2323,7 @@ treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
23222323 t -> start_ns_event_obj = t -> end_ns_event_obj = NULL ;
23232324 t -> comment_event_obj = t -> pi_event_obj = NULL ;
23242325 t -> insert_comments = t -> insert_pis = 0 ;
2326+ t -> state = ET_STATE_GLOBAL ;
23252327 }
23262328 return (PyObject * )t ;
23272329}
@@ -2353,7 +2355,7 @@ _elementtree_TreeBuilder___init___impl(TreeBuilderObject *self,
23532355 }
23542356
23552357 if (comment_factory == Py_None ) {
2356- elementtreestate * st = ET_STATE_GLOBAL ;
2358+ elementtreestate * st = self -> state ;
23572359 comment_factory = st -> comment_factory ;
23582360 }
23592361 if (comment_factory ) {
@@ -2547,7 +2549,7 @@ treebuilder_flush_data(TreeBuilderObject* self)
25472549 if (!self -> data ) {
25482550 return 0 ;
25492551 }
2550- elementtreestate * st = ET_STATE_GLOBAL ;
2552+ elementtreestate * st = self -> state ;
25512553 if (!self -> last_for_tail ) {
25522554 PyObject * element = self -> last ;
25532555 return treebuilder_extend_element_text_or_tail (
@@ -2607,7 +2609,7 @@ treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag,
26072609{
26082610 PyObject * node ;
26092611 PyObject * this ;
2610- elementtreestate * st = ET_STATE_GLOBAL ;
2612+ elementtreestate * st = self -> state ;
26112613
26122614 if (treebuilder_flush_data (self ) < 0 ) {
26132615 return NULL ;
0 commit comments