@@ -2291,6 +2291,7 @@ typedef struct {
2291
2291
2292
2292
char insert_comments ;
2293
2293
char insert_pis ;
2294
+ elementtreestate * state ;
2294
2295
} TreeBuilderObject ;
2295
2296
2296
2297
#define TreeBuilder_CheckExact (st , op ) Py_IS_TYPE((op), (st)->TreeBuilder_Type)
@@ -2324,6 +2325,7 @@ treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
2324
2325
t -> start_ns_event_obj = t -> end_ns_event_obj = NULL ;
2325
2326
t -> comment_event_obj = t -> pi_event_obj = NULL ;
2326
2327
t -> insert_comments = t -> insert_pis = 0 ;
2328
+ t -> state = ET_STATE_GLOBAL ;
2327
2329
}
2328
2330
return (PyObject * )t ;
2329
2331
}
@@ -2355,7 +2357,7 @@ _elementtree_TreeBuilder___init___impl(TreeBuilderObject *self,
2355
2357
}
2356
2358
2357
2359
if (comment_factory == Py_None ) {
2358
- elementtreestate * st = ET_STATE_GLOBAL ;
2360
+ elementtreestate * st = self -> state ;
2359
2361
comment_factory = st -> comment_factory ;
2360
2362
}
2361
2363
if (comment_factory ) {
@@ -2549,7 +2551,7 @@ treebuilder_flush_data(TreeBuilderObject* self)
2549
2551
if (!self -> data ) {
2550
2552
return 0 ;
2551
2553
}
2552
- elementtreestate * st = ET_STATE_GLOBAL ;
2554
+ elementtreestate * st = self -> state ;
2553
2555
if (!self -> last_for_tail ) {
2554
2556
PyObject * element = self -> last ;
2555
2557
return treebuilder_extend_element_text_or_tail (
@@ -2609,7 +2611,7 @@ treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag,
2609
2611
{
2610
2612
PyObject * node ;
2611
2613
PyObject * this ;
2612
- elementtreestate * st = ET_STATE_GLOBAL ;
2614
+ elementtreestate * st = self -> state ;
2613
2615
2614
2616
if (treebuilder_flush_data (self ) < 0 ) {
2615
2617
return NULL ;
0 commit comments