changeset: 102787:abb93035ebb7 user: Victor Stinner date: Sat Aug 20 01:34:44 2016 +0200 files: Modules/_elementtree.c description: _elementtree: deepcopy() now uses fast call Issue #27128. diff -r 351b987d6d1c -r abb93035ebb7 Modules/_elementtree.c --- a/Modules/_elementtree.c Sat Aug 20 01:24:22 2016 +0200 +++ b/Modules/_elementtree.c Sat Aug 20 01:34:44 2016 +0200 @@ -819,9 +819,8 @@ deepcopy(PyObject *object, PyObject *memo) { /* do a deep copy of the given object */ - PyObject *args; - PyObject *result; elementtreestate *st; + PyObject *stack[2]; /* Fast paths */ if (object == Py_None || PyUnicode_CheckExact(object)) { @@ -857,12 +856,9 @@ return NULL; } - args = PyTuple_Pack(2, object, memo); - if (!args) - return NULL; - result = PyObject_CallObject(st->deepcopy_obj, args); - Py_DECREF(args); - return result; + stack[0] = object; + stack[1] = memo; + return _PyObject_FastCall(st->deepcopy_obj, stack, 2, NULL); }