bpo-31428: Prevent raising a SystemError in case the memo arg of Elem… · python/cpython@d056818
@@ -70,6 +70,24 @@ PyDoc_STRVAR(_elementtree_Element___deepcopy____doc__,
7070#define _ELEMENTTREE_ELEMENT___DEEPCOPY___METHODDEF \
7171 {"__deepcopy__", (PyCFunction)_elementtree_Element___deepcopy__, METH_O, _elementtree_Element___deepcopy____doc__},
727273+static PyObject *
74+_elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo);
75+76+static PyObject *
77+_elementtree_Element___deepcopy__(ElementObject *self, PyObject *arg)
78+{
79+PyObject *return_value = NULL;
80+PyObject *memo;
81+82+if (!PyArg_Parse(arg, "O!:__deepcopy__", &PyDict_Type, &memo)) {
83+ goto exit;
84+ }
85+return_value = _elementtree_Element___deepcopy___impl(self, memo);
86+87+exit:
88+return return_value;
89+}
90+7391PyDoc_STRVAR(_elementtree_Element___sizeof____doc__,
7492"__sizeof__($self, /)\n"
7593"--\n"
@@ -731,4 +749,4 @@ _elementtree_XMLParser__setevents(XMLParserObject *self, PyObject **args, Py_ssi
731749exit:
732750return return_value;
733751}
734-/*[clinic end generated code: output=75d0ff80e20b830f input=a9049054013a1b77]*/
752+/*[clinic end generated code: output=ed55bd5209c12364 input=a9049054013a1b77]*/