8000 Refactor: replace query with parameter · python/cpython@71fdccd · GitHub
[go: up one dir, main page]

Skip to content

Commit 71fdccd

Browse files
Refactor: replace query with parameter
Pass state as arg to deepcopy()
1 parent 08ffd7c commit 71fdccd

File tree

1 file changed

+8
-9
lines changed
  • Modules
    • < 8000 div class="PRIVATE_VisuallyHidden prc-TreeView-TreeViewVisuallyHidden-4-mPv" aria-hidden="true" id=":RmtddabH1:">
      _elementtree.c

1 file changed

+8
-9
lines changed

Modules/_elementtree.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ _elementtree_Element___copy___impl(ElementObject *self)
759759
}
760760

761761
/* Helper for a deep copy. */
762-
LOCAL(PyObject *) deepcopy(PyObject *, PyObject *);
762+
LOCAL(PyObject *) deepcopy(elementtreestate *, PyObject *, PyObject *);
763763

764764
/*[clinic input]
765765
_elementtree.Element.__deepcopy__
@@ -781,12 +781,13 @@ _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)
781781
PyObject* tail;
782782
PyObject* id;
783783

784-
tag = deepcopy(self->tag, memo);
784+
elementtreestate *st = ET_STATE_GLOBAL;
785+
tag = deepcopy(st, self->tag, memo);
785786
if (!tag)
786787
return NULL;
787788

788789
if (self->extra && self->extra->attrib) {
789-
attrib = deepcopy(self->extra->attrib, memo);
790+
attrib = deepcopy(st, self->extra->attrib, memo);
790791
if (!attrib) {
791792
Py_DECREF(tag);
792793
return NULL;
@@ -795,7 +796,6 @@ _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)
795796
attrib = NULL;
796797
}
797798

798-
elementtreestate *st = ET_STATE_GLOBAL;
799799
element = (ElementObject*) create_new_element(st, tag, attrib);
800800

801801
Py_DECREF(tag);
@@ -804,12 +804,12 @@ _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)
804804
if (!element)
805805
return NULL;
806806

807-
text = deepcopy(JOIN_OBJ(self->text), memo);
807+
text = deepcopy(st, JOIN_OBJ(self->text), memo);
808808
if (!text)
809809
goto error;
810810
_set_joined_ptr(&element->text, JOIN_SET(text, JOIN_GET(self->text)));
811811

812-
tail = deepcopy(JOIN_OBJ(self->tail), memo);
812+
tail = deepcopy(st, JOIN_OBJ(self->tail), memo);
813813
if (!tail)
814814
goto error;
815815
_set_joined_ptr(&element->tail, JOIN_SET(tail, JOIN_GET(self->tail)));
@@ -820,7 +820,7 @@ _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)
820820
goto error;
821821

822822
for (i = 0; i < self->extra->length; i++) {
823-
PyObject* child = deepcopy(self->extra->children[i], memo);
823+
PyObject* child = deepcopy(st, self->extra->children[i], memo);
824824
if (!child || !Element_Check(st, child)) {
825825
if (child) {
826826
raise_type_error(child);
@@ -856,10 +856,9 @@ _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)
856856
}
857857

858858
LOCAL(PyObject *)
859-
deepcopy(PyObject *object, PyObject *memo)
859+
deepcopy(elementtreestate *st, PyObject *object, PyObject *memo)
860860
{
861861
/* do a deep copy of the given object */
862-
elementtreestate *st = ET_STATE_GLOBAL;
863862
PyObject *stack[2];
864863

865864
/* Fast paths */

0 commit comments

Comments
 (0)
0