From: Victor Stinner Date: Fri, 19 Aug 2016 22:44:04 +0000 (+0200) Subject: PyFile_WriteObject() now uses fast call X-Git-Tag: v3.6.0b1~642 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9def0901e23c6d655f28b7e5711874033b5ff5bd;p=python PyFile_WriteObject() now uses fast call Issue #27128: PyFile_WriteObject() now calls _PyObject_FastCall() to avoid the creation of a temporary tuple. --- diff --git a/Objects/fileobject.c b/Objects/fileobject.c index 234d07e5c6..83348a8ee3 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -127,7 +127,7 @@ PyFile_GetLine(PyObject *f, int n) int PyFile_WriteObject(PyObject *v, PyObject *f, int flags) { - PyObject *writer, *value, *args, *result; + PyObject *writer, *value, *result; _Py_IDENTIFIER(write); if (f == NULL) { @@ -146,14 +146,7 @@ PyFile_WriteObject(PyObject *v, PyObject *f, int flags) Py_DECREF(writer); return -1; } - args = PyTuple_Pack(1, value); - if (args == NULL) { - Py_DECREF(value); - Py_DECREF(writer); - return -1; - } - result = PyEval_CallObject(writer, args); - Py_DECREF(args); + result = _PyObject_FastCall(writer, &value, 1, NULL); Py_DECREF(value); Py_DECREF(writer); if (result == NULL)