From: Victor Stinner Date: Mon, 22 Aug 2016 22:25:01 +0000 (+0200) Subject: PyEval_CallObjectWithKeywords() doesn't inc/decref X-Git-Tag: v3.6.0b1~591 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6e2333dfdf54f052fcf404086141e820da3af8fb;p=thirdparty%2FPython%2Fcpython.git PyEval_CallObjectWithKeywords() doesn't inc/decref Issue #27809: PyEval_CallObjectWithKeywords() doesn't increment temporary the reference counter of the args tuple (positional arguments). The caller already holds a strong reference to it. --- diff --git a/Python/ceval.c b/Python/ceval.c index fd456ceed1ec..f9759f0f70cf 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4580,8 +4580,6 @@ PyEval_MergeCompilerFlags(PyCompilerFlags *cf) PyObject * PyEval_CallObjectWithKeywords(PyObject *func, PyObject *args, PyObject *kwargs) { - PyObject *result; - #ifdef Py_DEBUG /* PyEval_CallObjectWithKeywords() must not be called with an exception set. It raises a new exception if parameters are invalid or if @@ -4605,11 +4603,7 @@ PyEval_CallObjectWithKeywords(PyObject *func, PyObject *args, PyObject *kwargs) return NULL; } - Py_INCREF(args); - result = PyObject_Call(func, args, kwargs); - Py_DECREF(args); - - return result; + return PyObject_Call(func, args, kwargs); } const char *