changeset: 105542:6e748eb79038 user: Victor Stinner date: Fri Dec 09 00:40:33 2016 +0100 files: Include/abstract.h Objects/abstract.c description: Add _PyObject_VaCallFunctionObjArgs() private function Issue #28915: Similar to _PyObject_CallFunctionObjArgs() but use va_list to pass arguments. diff -r 49a7fdc0d40a -r 6e748eb79038 Include/abstract.h --- a/Include/abstract.h Fri Dec 09 00:38:53 2016 +0100 +++ b/Include/abstract.h Fri Dec 09 00:40:33 2016 +0100 @@ -437,6 +437,12 @@ PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *callable, ...); +#ifndef Py_LIMITED_API +PyAPI_FUNC(PyObject *) _PyObject_VaCallFunctionObjArgs( + PyObject *callable, + va_list vargs); +#endif + /* Call the method named 'name' of object 'obj' with a variable number of C arguments. The C arguments are provided as PyObject * diff -r 49a7fdc0d40a -r 6e748eb79038 Objects/abstract.c --- a/Objects/abstract.c Fri Dec 09 00:38:53 2016 +0100 +++ b/Objects/abstract.c Fri Dec 09 00:40:33 2016 +0100 @@ -2706,8 +2706,8 @@ return retval; } -static PyObject * -_PyObject_FastCallVa(PyObject *callable, va_list vargs) +PyObject * +_PyObject_VaCallFunctionObjArgs(PyObject *callable, va_list vargs) { PyObject *small_stack[5]; PyObject **stack; @@ -2773,7 +2773,7 @@ } va_start(vargs, name); - result = _PyObject_FastCallVa(callable, vargs); + result = _PyObject_VaCallFunctionObjArgs(callable, vargs); va_end(vargs); Py_DECREF(callable); @@ -2797,7 +2797,7 @@ } va_start(vargs, name); - result = _PyObject_FastCallVa(callable, vargs); + result = _PyObject_VaCallFunctionObjArgs(callable, vargs); va_end(vargs); Py_DECREF(callable); @@ -2811,7 +2811,7 @@ PyObject *result; va_start(vargs, callable); - result = _PyObject_FastCallVa(callable, vargs); + result = _PyObject_VaCallFunctionObjArgs(callable, vargs); va_end(vargs); return result;