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+7391

PyDoc_STRVAR(_elementtree_Element___sizeof____doc__,

7492

"__sizeof__($self, /)\n"

7593

"--\n"

@@ -731,4 +749,4 @@ _elementtree_XMLParser__setevents(XMLParserObject *self, PyObject **args, Py_ssi

731749

exit:

732750

return return_value;

733751

}

734-

/*[clinic end generated code: output=75d0ff80e20b830f input=a9049054013a1b77]*/

752+

/*[clinic end generated code: output=ed55bd5209c12364 input=a9049054013a1b77]*/