Issue #28858: Remove _PyObject_CallArg1() macro

Replace
   _PyObject_CallArg1(func, arg)
with
   PyObject_CallFunctionObjArgs(func, arg, NULL)

Using the _PyObject_CallArg1() macro increases the usage of the C stack, which
was unexpected and unwanted. PyObject_CallFunctionObjArgs() doesn't have this
issue.
This commit is contained in:
Victor Stinner 2016-12-05 17:04:32 +01:00
parent d77e5b7211
commit 7bfb42d5b7
15 changed files with 25 additions and 26 deletions

View file

@ -476,7 +476,7 @@ warn_explicit(PyObject *category, PyObject *message,
}
else {
text = message;
message = _PyObject_CallArg1(category, message);
message = PyObject_CallFunctionObjArgs(category, message, NULL);
if (message == NULL)
goto cleanup;
}

View file

@ -322,7 +322,7 @@ PyObject *codec_getstreamcodec(const char *encoding,
if (errors != NULL)
streamcodec = PyObject_CallFunction(codeccls, "Os", stream, errors);
else
streamcodec = _PyObject_CallArg1(codeccls, stream);
streamcodec = PyObject_CallFunctionObjArgs(codeccls, stream, NULL);
Py_DECREF(codecs);
return streamcodec;
}

View file

@ -62,7 +62,7 @@ _PyErr_CreateException(PyObject *exception, PyObject *value)
return PyObject_Call(exception, value, NULL);
}
else {
return _PyObject_CallArg1(exception, value);
return PyObject_CallFunctionObjArgs(exception, value, NULL);
}
}

View file

@ -2325,7 +2325,7 @@ sys_pyfile_write_unicode(PyObject *unicode, PyObject *file)
if (writer == NULL)
goto error;
result = _PyObject_CallArg1(writer, unicode);
result = PyObject_CallFunctionObjArgs(writer, unicode, NULL);
if (result == NULL) {
goto error;
} else {