summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-09-06 00:53:15 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2016-09-06 00:53:15 (GMT)
commitad8c83ad6b91bebbc124c0c36e67b9836ca3d90f (patch)
tree18c2f0bdd40db2aa568b9e4a5f87d2f88ff70059
parentca08301ae0cc5e4e7b57e2283542815efbff86bb (diff)
downloadcpython-ad8c83ad6b91bebbc124c0c36e67b9836ca3d90f.zip
cpython-ad8c83ad6b91bebbc124c0c36e67b9836ca3d90f.tar.gz
cpython-ad8c83ad6b91bebbc124c0c36e67b9836ca3d90f.tar.bz2
Avoid inefficient way to call functions without argument
Don't pass "()" format to PyObject_CallXXX() to call a function without argument: pass NULL as the format string instead. It avoids to have to parse a string to produce 0 argument.
-rw-r--r--Modules/_collectionsmodule.c2
-rw-r--r--Modules/_datetimemodule.c8
-rw-r--r--Modules/_pickle.c2
-rw-r--r--Objects/typeobject.c8
-rw-r--r--Python/modsupport.c2
5 files changed, 11 insertions, 11 deletions
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 3410dfe..1675102 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -2009,7 +2009,7 @@ defdict_reduce(defdictobject *dd)
args = PyTuple_Pack(1, dd->default_factory);
if (args == NULL)
return NULL;
- items = _PyObject_CallMethodId((PyObject *)dd, &PyId_items, "()");
+ items = _PyObject_CallMethodId((PyObject *)dd, &PyId_items, NULL);
if (items == NULL) {
Py_DECREF(args);
return NULL;
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 7e95af7..b48dc2d 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -1378,7 +1378,7 @@ time_time(void)
if (time != NULL) {
_Py_IDENTIFIER(time);
- result = _PyObject_CallMethodId(time, &PyId_time, "()");
+ result = _PyObject_CallMethodId(time, &PyId_time, NULL);
Py_DECREF(time);
}
return result;
@@ -2703,7 +2703,7 @@ date_isoformat(PyDateTime_Date *self)
static PyObject *
date_str(PyDateTime_Date *self)
{
- return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "()");
+ return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, NULL);
}
@@ -2729,7 +2729,7 @@ date_strftime(PyDateTime_Date *self, PyObject *args, PyObject *kw)
&format))
return NULL;
- tuple = _PyObject_CallMethodId((PyObject *)self, &PyId_timetuple, "()");
+ tuple = _PyObject_CallMethodId((PyObject *)self, &PyId_timetuple, NULL);
if (tuple == NULL)
return NULL;
result = wrap_strftime((PyObject *)self, format, tuple,
@@ -3675,7 +3675,7 @@ time_repr(PyDateTime_Time *self)
static PyObject *
time_str(PyDateTime_Time *self)
{
- return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "()");
+ return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, NULL);
}
static PyObject *
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index a8d414e..eae3394 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -2873,7 +2873,7 @@ save_dict(PicklerObject *self, PyObject *obj)
} else {
_Py_IDENTIFIER(items);
- items = _PyObject_CallMethodId(obj, &PyId_items, "()");
+ items = _PyObject_CallMethodId(obj, &PyId_items, NULL);
if (items == NULL)
goto error;
iter = PyObject_GetIter(items);
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 6cffb4e..209d4fa 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -5758,7 +5758,7 @@ static PyObject * \
FUNCNAME(PyObject *self) \
{ \
_Py_static_string(id, OPSTR); \
- return call_method(self, &id, "()"); \
+ return call_method(self, &id, NULL); \
}
#define SLOT1(FUNCNAME, OPSTR, ARG1TYPE, ARGCODES) \
@@ -5851,7 +5851,7 @@ FUNCNAME(PyObject *self, ARG1TYPE arg1, ARG2TYPE arg2) \
static Py_ssize_t
slot_sq_length(PyObject *self)
{
- PyObject *res = call_method(self, &PyId___len__, "()");
+ PyObject *res = call_method(self, &PyId___len__, NULL);
Py_ssize_t len;
if (res == NULL)
@@ -6065,7 +6065,7 @@ static PyObject *
slot_nb_index(PyObject *self)
{
_Py_IDENTIFIER(__index__);
- return call_method(self, &PyId___index__, "()");
+ return call_method(self, &PyId___index__, NULL);
}
@@ -6351,7 +6351,7 @@ static PyObject *
slot_tp_iternext(PyObject *self)
{
_Py_IDENTIFIER(__next__);
- return call_method(self, &PyId___next__, "()");
+ return call_method(self, &PyId___next__, NULL);
}
static PyObject *
diff --git a/Python/modsupport.c b/Python/modsupport.c
index 4911f06..37c0ce7 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -468,7 +468,7 @@ va_build_value(const char *format, va_list va, int flags)
int n = countformat(f, '\0');
va_list lva;
- Py_VA_COPY(lva, va);
+ Py_VA_COPY(lva, va);
if (n < 0)
return NULL;