diff options
-rw-r--r-- | Modules/pyexpat.c | 2 | ||||
-rw-r--r-- | Objects/abstract.c | 4 | ||||
-rw-r--r-- | Objects/iterobject.c | 7 | ||||
-rw-r--r-- | Objects/typeobject.c | 19 | ||||
-rw-r--r-- | Parser/tokenizer.c | 17 |
5 files changed, 37 insertions, 12 deletions
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index fc419b1..8b73e1e 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -829,7 +829,7 @@ readinst(char *buf, int buf_size, PyObject *meth) PyTuple_SET_ITEM(arg, 0, bytes); - if ((str = PyObject_CallObject(meth, arg)) == NULL) + if ((str = PyObject_Call(meth, arg, NULL)) == NULL) goto finally; /* XXX what to do if it returns a Unicode string? */ diff --git a/Objects/abstract.c b/Objects/abstract.c index fc73a9f..9940fd3 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -1727,7 +1727,7 @@ PyObject_CallFunction(PyObject *callable, char *format, ...) return NULL; args = a; } - retval = PyObject_CallObject(callable, args); + retval = PyObject_Call(callable, args, NULL); Py_DECREF(args); @@ -1774,7 +1774,7 @@ PyObject_CallMethod(PyObject *o, char *name, char *format, ...) args = a; } - retval = PyObject_CallObject(func, args); + retval = PyObject_Call(func, args, NULL); Py_DECREF(args); Py_DECREF(func); diff --git a/Objects/iterobject.c b/Objects/iterobject.c index 4dc225a..2e1caae 100644 --- a/Objects/iterobject.c +++ b/Objects/iterobject.c @@ -163,7 +163,12 @@ static PyObject * calliter_iternext(calliterobject *it) { if (it->it_callable != NULL) { - PyObject *result = PyObject_CallObject(it->it_callable, NULL); + PyObject *args = PyTuple_New(0); + PyObject *result; + if (args == NULL) + return NULL; + result = PyObject_Call(it->it_callable, args, NULL); + Py_DECREF(args); if (result != NULL) { int ok; ok = PyObject_RichCompareBool(result, diff --git a/Objects/typeobject.c b/Objects/typeobject.c index c3c5893..a12e7df 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3257,7 +3257,7 @@ SLOT0(slot_nb_absolute, "__abs__") static int slot_nb_nonzero(PyObject *self) { - PyObject *func, *res; + PyObject *func, *res, *args; static PyObject *nonzero_str, *len_str; func = lookup_maybe(self, "__nonzero__", &nonzero_str); @@ -3272,7 +3272,11 @@ slot_nb_nonzero(PyObject *self) return 1; } } - res = PyObject_CallObject(func, NULL); + args = res = PyTuple_New(0); + if (args != NULL) { + res = PyObject_Call(func, args, NULL); + Py_DECREF(args); + } Py_DECREF(func); if (res == NULL) return -1; @@ -3651,9 +3655,14 @@ slot_tp_iter(PyObject *self) func = lookup_method(self, "__iter__", &iter_str); if (func != NULL) { - res = PyObject_CallObject(func, NULL); - Py_DECREF(func); - return res; + PyObject *args; + args = res = PyTuple_New(0); + if (args != NULL) { + res = PyObject_Call(func, args, NULL); + Py_DECREF(args); + } + Py_DECREF(func); + return res; } PyErr_Clear(); func = lookup_method(self, "__getitem__", &getitem_str); diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 7e7a370..4119c43 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -327,12 +327,16 @@ fp_readl(char *s, int size, struct tok_state *tok) #ifndef Py_USING_UNICODE /* In a non-Unicode built, this should never be called. */ Py_FatalError("fp_readl should not be called in this build."); - return NULL; + return NULL; /* Keep compiler happy (not reachable) */ #else PyObject* utf8; PyObject* buf = tok->decoding_buffer; if (buf == NULL) { - buf = PyObject_CallObject(tok->decoding_readline, NULL); + PyObject *args = PyTuple_New(0); + if (args == NULL) + return error_ret(tok); + buf = PyObject_Call(tok->decoding_readline, args, NULL); + Py_DECREF(args); if (buf == NULL) return error_ret(tok); } else { @@ -464,7 +468,14 @@ decoding_feof(struct tok_state *tok) } else { PyObject* buf = tok->decoding_buffer; if (buf == NULL) { - buf = PyObject_CallObject(tok->decoding_readline, NULL); + PyObject *args = PyTuple_New(0); + if (args == NULL) { + error_ret(tok); + return 1; + } + buf = PyObject_Call(tok->decoding_readline, + args, NULL); + Py_DECREF(args); if (buf == NULL) { error_ret(tok); return 1; |