Skip to content

Commit ad8c83a

Browse files
committed
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.
1 parent ca08301 commit ad8c83a

File tree

5 files changed

+11
-11
lines changed

5 files changed

+11
-11
lines changed

Modules/_collectionsmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2009,7 +2009,7 @@ defdict_reduce(defdictobject *dd)
20092009
args = PyTuple_Pack(1, dd->default_factory);
20102010
if (args == NULL)
20112011
return NULL;
2012-
items = _PyObject_CallMethodId((PyObject *)dd, &PyId_items, "()");
2012+
items = _PyObject_CallMethodId((PyObject *)dd, &PyId_items, NULL);
20132013
if (items == NULL) {
20142014
Py_DECREF(args);
20152015
return NULL;

Modules/_datetimemodule.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,7 +1378,7 @@ time_time(void)
13781378
if (time != NULL) {
13791379
_Py_IDENTIFIER(time);
13801380

1381-
result = _PyObject_CallMethodId(time, &PyId_time, "()");
1381+
result = _PyObject_CallMethodId(time, &PyId_time, NULL);
13821382
Py_DECREF(time);
13831383
}
13841384
return result;
@@ -2703,7 +2703,7 @@ date_isoformat(PyDateTime_Date *self)
27032703
static PyObject *
27042704
date_str(PyDateTime_Date *self)
27052705
{
2706-
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "()");
2706+
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, NULL);
27072707
}
27082708

27092709

@@ -2729,7 +2729,7 @@ date_strftime(PyDateTime_Date *self, PyObject *args, PyObject *kw)
27292729
&format))
27302730
return NULL;
27312731

2732-
tuple = _PyObject_CallMethodId((PyObject *)self, &PyId_timetuple, "()");
2732+
tuple = _PyObject_CallMethodId((PyObject *)self, &PyId_timetuple, NULL);
27332733
if (tuple == NULL)
27342734
return NULL;
27352735
result = wrap_strftime((PyObject *)self, format, tuple,
@@ -3675,7 +3675,7 @@ time_repr(PyDateTime_Time *self)
36753675
static PyObject *
36763676
time_str(PyDateTime_Time *self)
36773677
{
3678-
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "()");
3678+
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, NULL);
36793679
}
36803680

36813681
static PyObject *

Modules/_pickle.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2873,7 +2873,7 @@ save_dict(PicklerObject *self, PyObject *obj)
28732873
} else {
28742874
_Py_IDENTIFIER(items);
28752875

2876-
items = _PyObject_CallMethodId(obj, &PyId_items, "()");
2876+
items = _PyObject_CallMethodId(obj, &PyId_items, NULL);
28772877
if (items == NULL)
28782878
goto error;
28792879
iter = PyObject_GetIter(items);

Objects/typeobject.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5758,7 +5758,7 @@ static PyObject * \
57585758
FUNCNAME(PyObject *self) \
57595759
{ \
57605760
_Py_static_string(id, OPSTR); \
5761-
return call_method(self, &id, "()"); \
5761+
return call_method(self, &id, NULL); \
57625762
}
57635763

57645764
#define SLOT1(FUNCNAME, OPSTR, ARG1TYPE, ARGCODES) \
@@ -5851,7 +5851,7 @@ FUNCNAME(PyObject *self, ARG1TYPE arg1, ARG2TYPE arg2) \
58515851
static Py_ssize_t
58525852
slot_sq_length(PyObject *self)
58535853
{
5854-
PyObject *res = call_method(self, &PyId___len__, "()");
5854+
PyObject *res = call_method(self, &PyId___len__, NULL);
58555855
Py_ssize_t len;
58565856

58575857
if (res == NULL)
@@ -6065,7 +6065,7 @@ static PyObject *
60656065
slot_nb_index(PyObject *self)
60666066
{
60676067
_Py_IDENTIFIER(__index__);
6068-
return call_method(self, &PyId___index__, "()");
6068+
return call_method(self, &PyId___index__, NULL);
60696069
}
60706070

60716071

@@ -6351,7 +6351,7 @@ static PyObject *
63516351
slot_tp_iternext(PyObject *self)
63526352
{
63536353
_Py_IDENTIFIER(__next__);
6354-
return call_method(self, &PyId___next__, "()");
6354+
return call_method(self, &PyId___next__, NULL);
63556355
}
63566356

63576357
static PyObject *

Python/modsupport.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ va_build_value(const char *format, va_list va, int flags)
468468
int n = countformat(f, '\0');
469469
va_list lva;
470470

471-
Py_VA_COPY(lva, va);
471+
Py_VA_COPY(lva, va);
472472

473473
if (n < 0)
474474
return NULL;

0 commit comments

Comments
 (0)