From 5560b7492c8dbe17a29362a66102662e5e22a9d2 Mon Sep 17 00:00:00 2001
From: Guido van Rossum <guido@python.org>
Date: Fri, 14 Sep 2001 16:47:50 +0000
Subject: PyObject_CallObject(): this may as well call PyEval_CallObject()
 directly, as the only thing done here (replace NULL args with an empty tuple)
 is also done there.

XXX Maybe we should take one step further and equate the two at the
macro level?  That's harder though because PyEval_Call* is declared in
a header that's not included standard.  But it is silly that
PyObject_CallObject calls PyEval_CallObject which calls back to
PyObject_Call.  Maybe PyEval_CallObject should be moved into this file
instead?  All I know is that there are too many call APIs!  The
differences between PyObject_Call and PyEval_CallObjectWithKeywords is
that the latter allows args to be NULL, and does explicit type checks
for args and kwds.
---
 Objects/abstract.c | 17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

diff --git a/Objects/abstract.c b/Objects/abstract.c
index c44f8c2..fdf1a44 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1615,22 +1615,7 @@ PyMapping_HasKey(PyObject *o, PyObject *key)
 PyObject *
 PyObject_CallObject(PyObject *o, PyObject *a)
 {
-	PyObject *r;
-	PyObject *args = a;
-
-	if (args == NULL) {
-		args = PyTuple_New(0);
-		if (args == NULL)
-			return NULL;
-	}
-
-	r = PyEval_CallObject(o, args);
-
-	if (args != a) {
-		Py_DECREF(args);
-	}
-
-	return r;
+	return PyEval_CallObjectWithKeywords(o, a, NULL);
 }
 
 PyObject *
-- 
cgit v0.12

