File tree Expand file tree Collapse file tree 1 file changed +11
-8
lines changed
Expand file tree Collapse file tree 1 file changed +11
-8
lines changed Original file line number Diff line number Diff line change @@ -2840,8 +2840,6 @@ treebuilder_handle_data(TreeBuilderObject* self, PyObject* data)
28402840LOCAL (PyObject * )
28412841treebuilder_handle_end (TreeBuilderObject * self , PyObject * tag )
28422842{
2843- PyObject * item ;
2844-
28452843 if (treebuilder_flush_data (self ) < 0 ) {
28462844 return NULL ;
28472845 }
@@ -2854,17 +2852,22 @@ treebuilder_handle_end(TreeBuilderObject* self, PyObject* tag)
28542852 return NULL ;
28552853 }
28562854
2857- item = self -> last ;
2858- self -> last = Py_NewRef (self -> this );
2859- Py_XSETREF (self -> last_for_tail , self -> last );
2855+ PyObject * last = self -> last ;
2856+ PyObject * last_for_tail = self -> last_for_tail ;
2857+ PyObject * this = self -> this ;
2858+ self -> last = Py_NewRef (this );
2859+ self -> last_for_tail = Py_NewRef (this );
28602860 self -> index -- ;
28612861 self -> this = Py_NewRef (PyList_GET_ITEM (self -> stack , self -> index ));
2862- Py_DECREF (item );
2862+ Py_DECREF (last );
2863+ Py_XDECREF (last_for_tail );
28632864
2864- if (treebuilder_append_event (self , self -> end_event_obj , self -> last ) < 0 )
2865+ if (treebuilder_append_event (self , self -> end_event_obj , self -> last ) < 0 ) {
2866+ Py_DECREF (this );
28652867 return NULL ;
2868+ }
28662869
2867- return Py_NewRef ( self -> last ) ;
2870+ return this ;
28682871}
28692872
28702873LOCAL (PyObject * )
You can’t perform that action at this time.
0 commit comments