(original) (raw)
changeset: 102852:bf2d88cf039a user: Victor Stinner victor.stinner@gmail.com date: Tue Aug 23 00:25:01 2016 +0200 files: Python/ceval.c description: 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 -r 60660890459f -r bf2d88cf039a Python/ceval.c --- a/Python/ceval.c Tue Aug 23 00:23:23 2016 +0200 +++ b/Python/ceval.c Tue Aug 23 00:25:01 2016 +0200 @@ -4580,8 +4580,6 @@ 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 @@ return NULL; } - Py_INCREF(args); - result = PyObject_Call(func, args, kwargs); - Py_DECREF(args); - - return result; + return PyObject_Call(func, args, kwargs); } const char * /victor.stinner@gmail.com