]> granicus.if.org Git - python/commitdiff
sys_pyfile_write_unicode() now uses fast call
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 19 Aug 2016 23:24:22 +0000 (01:24 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Fri, 19 Aug 2016 23:24:22 +0000 (01:24 +0200)
Issue #27128.

Python/sysmodule.c

index 74b8560ae842fdada1f4ed1050628ecad6567953..be8e164bba2035d781e0cfd5e8e8d17b363d7e40 100644 (file)
@@ -2112,7 +2112,7 @@ PySys_SetArgv(int argc, wchar_t **argv)
 static int
 sys_pyfile_write_unicode(PyObject *unicode, PyObject *file)
 {
-    PyObject *writer = NULL, *args = NULL, *result = NULL;
+    PyObject *writer = NULL, *result = NULL;
     int err;
 
     if (file == NULL)
@@ -2122,11 +2122,7 @@ sys_pyfile_write_unicode(PyObject *unicode, PyObject *file)
     if (writer == NULL)
         goto error;
 
-    args = PyTuple_Pack(1, unicode);
-    if (args == NULL)
-        goto error;
-
-    result = PyEval_CallObject(writer, args);
+    result = _PyObject_FastCall(writer, &unicode, 1, NULL);
     if (result == NULL) {
         goto error;
     } else {
@@ -2138,7 +2134,6 @@ error:
     err = -1;
 finally:
     Py_XDECREF(writer);
-    Py_XDECREF(args);
     Py_XDECREF(result);
     return err;
 }