changeset: 105554:4545a2293e01 user: Victor Stinner date: Fri Dec 09 16:09:30 2016 +0100 files: Modules/_pickle.c Modules/arraymodule.c Modules/cjkcodecs/multibytecodec.c Python/_warnings.c Python/import.c Python/marshal.c description: Use _PyObject_CallMethodIdObjArgs() Issue #28915: Replace _PyObject_CallMethodId() with _PyObject_CallMethodIdObjArgs() in various modules when the format string was only made of "O" formats, PyObject* arguments. _PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and doesn't have to parse a format string. diff -r 434e76e0ee17 -r 4545a2293e01 Modules/_pickle.c --- a/Modules/_pickle.c Fri Dec 09 15:39:28 2016 +0100 +++ b/Modules/_pickle.c Fri Dec 09 16:09:30 2016 +0100 @@ -4571,8 +4571,8 @@ { _Py_IDENTIFIER(find_class); - return _PyObject_CallMethodId((PyObject *)self, &PyId_find_class, "OO", - module_name, global_name); + return _PyObject_CallMethodIdObjArgs((PyObject *)self, &PyId_find_class, + module_name, global_name, NULL); } static Py_ssize_t @@ -5184,7 +5184,7 @@ else { _Py_IDENTIFIER(__new__); - result = _PyObject_CallMethodId(cls, &PyId___new__, "O", cls); + result = _PyObject_CallMethodIdObjArgs(cls, &PyId___new__, cls, NULL); } return result; } diff -r 434e76e0ee17 -r 4545a2293e01 Modules/arraymodule.c --- a/Modules/arraymodule.c Fri Dec 09 15:39:28 2016 +0100 +++ b/Modules/arraymodule.c Fri Dec 09 16:09:30 2016 +0100 @@ -1445,7 +1445,7 @@ bytes = PyBytes_FromStringAndSize(ptr, size); if (bytes == NULL) return NULL; - res = _PyObject_CallMethodId(f, &PyId_write, "O", bytes); + res = _PyObject_CallMethodIdObjArgs(f, &PyId_write, bytes, NULL); Py_DECREF(bytes); if (res == NULL) return NULL; diff -r 434e76e0ee17 -r 4545a2293e01 Modules/cjkcodecs/multibytecodec.c --- a/Modules/cjkcodecs/multibytecodec.c Fri Dec 09 15:39:28 2016 +0100 +++ b/Modules/cjkcodecs/multibytecodec.c Fri Dec 09 16:09:30 2016 +0100 @@ -1611,7 +1611,7 @@ if (str == NULL) return -1; - wr = _PyObject_CallMethodId(self->stream, &PyId_write, "O", str); + wr = _PyObject_CallMethodIdObjArgs(self->stream, &PyId_write, str, NULL); Py_DECREF(str); if (wr == NULL) return -1; @@ -1702,7 +1702,7 @@ if (PyBytes_Size(pwrt) > 0) { PyObject *wr; - wr = _PyObject_CallMethodId(self->stream, &PyId_write, "O", pwrt); + wr = _PyObject_CallMethodIdObjArgs(self->stream, &PyId_write, pwrt); if (wr == NULL) { Py_DECREF(pwrt); return NULL; diff -r 434e76e0ee17 -r 4545a2293e01 Python/_warnings.c --- a/Python/_warnings.c Fri Dec 09 15:39:28 2016 +0100 +++ b/Python/_warnings.c Fri Dec 09 16:09:30 2016 +0100 @@ -26,7 +26,7 @@ if (obj == Py_None) return 1; - result = _PyObject_CallMethodId(obj, &PyId_match, "O", arg); + result = _PyObject_CallMethodIdObjArgs(obj, &PyId_match, arg, NULL); if (result == NULL) return -1; diff -r 434e76e0ee17 -r 4545a2293e01 Python/import.c --- a/Python/import.c Fri Dec 09 15:39:28 2016 +0100 +++ b/Python/import.c Fri Dec 09 16:09:30 2016 +0100 @@ -1705,7 +1705,7 @@ Py_INCREF(imp); } - reloaded_module = _PyObject_CallMethodId(imp, &PyId_reload, "O", m); + reloaded_module = _PyObject_CallMethodIdObjArgs(imp, &PyId_reload, m, NULL); Py_DECREF(imp); return reloaded_module; } diff -r 434e76e0ee17 -r 4545a2293e01 Python/marshal.c --- a/Python/marshal.c Fri Dec 09 15:39:28 2016 +0100 +++ b/Python/marshal.c Fri Dec 09 16:09:30 2016 +0100 @@ -1649,7 +1649,7 @@ s = PyMarshal_WriteObjectToString(x, version); if (s == NULL) return NULL; - res = _PyObject_CallMethodId(f, &PyId_write, "O", s); + res = _PyObject_CallMethodIdObjArgs(f, &PyId_write, s, NULL); Py_DECREF(s); return res; }