From d056818ed2ade6d28190a375d7183f4aef9caa55 Mon Sep 17 00:00:00 2001 From: Oren Milman Date: Tue, 12 Sep 2017 17:39:15 +0300 Subject: bpo-31428: Prevent raising a SystemError in case the memo arg of ElementTree.Element.__deepcopy__() isn't a dictionary. (#3512) --- Modules/_elementtree.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Modules/_elementtree.c') diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 857005a2a9..98d5e7f506 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -733,14 +733,14 @@ LOCAL(PyObject *) deepcopy(PyObject *, PyObject *); /*[clinic input] _elementtree.Element.__deepcopy__ - memo: object + memo: object(subclass_of="&PyDict_Type") / [clinic start generated code]*/ static PyObject * -_elementtree_Element___deepcopy__(ElementObject *self, PyObject *memo) -/*[clinic end generated code: output=d1f19851d17bf239 input=df24c2b602430b77]*/ +_elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo) +/*[clinic end generated code: output=eefc3df50465b642 input=a2d40348c0aade10]*/ { Py_ssize_t i; ElementObject* element; @@ -849,7 +849,8 @@ deepcopy(PyObject *object, PyObject *memo) /* Fall through to general case */ } else if (Element_CheckExact(object)) { - return _elementtree_Element___deepcopy__((ElementObject *)object, memo); + return _elementtree_Element___deepcopy___impl( + (ElementObject *)object, memo); } } -- cgit v1.2.1