[Python-checkins] cpython: Don't parenthesis in _PyObject_CallMethodId() format

victor.stinner python-checkins at python.org
Thu Dec 8 20:16:59 EST 2016


https://hg.python.org/cpython/rev/b9eb35435178
changeset:   105538:b9eb35435178
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Fri Dec 09 00:33:39 2016 +0100
summary:
  Don't parenthesis in _PyObject_CallMethodId() format

Issue #28915: Without parenthesis, _PyObject_CallMethodId() avoids the creation
a temporary tuple, and so is more efficient.

files:
  Modules/_datetimemodule.c   |  2 +-
  Modules/_decimal/_decimal.c |  2 +-
  Modules/_json.c             |  2 +-
  3 files changed, 3 insertions(+), 3 deletions(-)


diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -4673,7 +4673,7 @@
 static PyObject *
 datetime_str(PyDateTime_DateTime *self)
 {
-    return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "(s)", " ");
+    return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "s", " ");
 }
 
 static PyObject *
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c
--- a/Modules/_decimal/_decimal.c
+++ b/Modules/_decimal/_decimal.c
@@ -5716,7 +5716,7 @@
     /* DecimalTuple */
     ASSIGN_PTR(collections, PyImport_ImportModule("collections"));
     ASSIGN_PTR(DecimalTuple, (PyTypeObject *)PyObject_CallMethod(collections,
-                                 "namedtuple", "(ss)", "DecimalTuple",
+                                 "namedtuple", "ss", "DecimalTuple",
                                  "sign digits exponent"));
 
     ASSIGN_PTR(obj, PyUnicode_FromString("decimal"));
diff --git a/Modules/_json.c b/Modules/_json.c
--- a/Modules/_json.c
+++ b/Modules/_json.c
@@ -335,7 +335,7 @@
         if (JSONDecodeError == NULL)
             return;
     }
-    exc = PyObject_CallFunction(JSONDecodeError, "(zOn)", msg, s, end);
+    exc = PyObject_CallFunction(JSONDecodeError, "zOn", msg, s, end);
     if (exc) {
         PyErr_SetObject(JSONDecodeError, exc);
         Py_DECREF(exc);

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list