summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-12-01 13:51:04 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2016-12-01 13:51:04 (GMT)
commit4778eab1f2b70cd2431252cae987e4adb3729ce8 (patch)
treeda490c7fb2cf97449a8f17ae3b053e49a7c9b8ac /Modules
parent842cfff3215aaebf788d782e40a61fe421fb2a5d (diff)
downloadcpython-4778eab1f2b70cd2431252cae987e4adb3729ce8.zip
cpython-4778eab1f2b70cd2431252cae987e4adb3729ce8.tar.gz
cpython-4778eab1f2b70cd2431252cae987e4adb3729ce8.tar.bz2
Replace PyObject_CallFunction() with fastcall
Replace PyObject_CallFunction(func, "O", arg) and PyObject_CallFunction(func, "O", arg, NULL) with _PyObject_CallArg1(func, arg) Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func) _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_collectionsmodule.c2
-rw-r--r--Modules/_elementtree.c10
-rw-r--r--Modules/pyexpat.c2
-rw-r--r--Modules/readline.c2
4 files changed, 8 insertions, 8 deletions
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 6608798..cbf5b50 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -538,7 +538,7 @@ deque_copy(PyObject *deque)
return NULL;
}
if (old_deque->maxlen < 0)
- return PyObject_CallFunction((PyObject *)(Py_TYPE(deque)), "O", deque, NULL);
+ return _PyObject_CallArg1((PyObject *)(Py_TYPE(deque)), deque);
else
return PyObject_CallFunction((PyObject *)(Py_TYPE(deque)), "Oi",
deque, old_deque->maxlen, NULL);
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index f3e1e9f..bafcaa5 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -2831,7 +2831,7 @@ expat_set_error(enum XML_Error error_code, Py_ssize_t line, Py_ssize_t column,
if (errmsg == NULL)
return;
- error = PyObject_CallFunction(st->parseerror_obj, "O", errmsg);
+ error = _PyObject_CallArg1(st->parseerror_obj, errmsg);
Py_DECREF(errmsg);
if (!error)
return;
@@ -2894,7 +2894,7 @@ expat_default_handler(XMLParserObject* self, const XML_Char* data_in,
(TreeBuilderObject*) self->target, value
);
else if (self->handle_data)
- res = PyObject_CallFunction(self->handle_data, "O", value);
+ res = _PyObject_CallArg1(self->handle_data, value);
else
res = NULL;
Py_XDECREF(res);
@@ -3004,7 +3004,7 @@ expat_data_handler(XMLParserObject* self, const XML_Char* data_in,
/* shortcut */
res = treebuilder_handle_data((TreeBuilderObject*) self->target, data);
else if (self->handle_data)
- res = PyObject_CallFunction(self->handle_data, "O", data);
+ res = _PyObject_CallArg1(self->handle_data, data);
else
res = NULL;
@@ -3031,7 +3031,7 @@ expat_end_handler(XMLParserObject* self, const XML_Char* tag_in)
else if (self->handle_end) {
tag = makeuniversal(self, tag_in);
if (tag) {
- res = PyObject_CallFunction(self->handle_end, "O", tag);
+ res = _PyObject_CallArg1(self->handle_end, tag);
Py_DECREF(tag);
}
}
@@ -3090,7 +3090,7 @@ expat_comment_handler(XMLParserObject* self, const XML_Char* comment_in)
if (self->handle_comment) {
comment = PyUnicode_DecodeUTF8(comment_in, strlen(comment_in), "strict");
if (comment) {
- res = PyObject_CallFunction(self->handle_comment, "O", comment);
+ res = _PyObject_CallArg1(self->handle_comment, comment);
Py_XDECREF(res);
Py_DECREF(comment);
}
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index b3259d5..541eee7 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -119,7 +119,7 @@ set_error(xmlparseobject *self, enum XML_Error code)
XML_ErrorString(code), lineno, column);
if (buffer == NULL)
return NULL;
- err = PyObject_CallFunction(ErrorObject, "O", buffer);
+ err = _PyObject_CallArg1(ErrorObject, buffer);
Py_DECREF(buffer);
if ( err != NULL
&& set_error_attr(err, "code", code)
diff --git a/Modules/readline.c b/Modules/readline.c
index 3b94d4a..389954f 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -868,7 +868,7 @@ on_hook(PyObject *func)
int result = 0;
if (func != NULL) {
PyObject *r;
- r = PyObject_CallFunction(func, NULL);
+ r = _PyObject_CallNoArg(func);
if (r == NULL)
goto error;
if (r == Py_None)