summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-08-19 22:44:04 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2016-08-19 22:44:04 (GMT)
commit9def0901e23c6d655f28b7e5711874033b5ff5bd (patch)
treeae3c2d73d91bd5058692a4f37bc26ff3b1b10947 /Objects
parent75210697ecb830b592bcb5d22503ddbb8401f3e8 (diff)
downloadcpython-9def0901e23c6d655f28b7e5711874033b5ff5bd.zip
cpython-9def0901e23c6d655f28b7e5711874033b5ff5bd.tar.gz
cpython-9def0901e23c6d655f28b7e5711874033b5ff5bd.tar.bz2
PyFile_WriteObject() now uses fast call
Issue #27128: PyFile_WriteObject() now calls _PyObject_FastCall() to avoid the creation of a temporary tuple.
Diffstat (limited to 'Objects')
-rw-r--r--Objects/fileobject.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index 234d07e..83348a8 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)