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