diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2016-12-09 00:40:33 +0100 |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2016-12-09 00:40:33 +0100 |
commit | 7f39c0ccfcaba95de1eaba87f117b89b032b1fa0 (patch) | |
tree | 96e11f02c4777cc90aeda3f1ed2e69210de84fdb | |
parent | dbe28d26b46adb7ed3d6731bc148fc095ff43bba (diff) | |
download | cpython-git-7f39c0ccfcaba95de1eaba87f117b89b032b1fa0.tar.gz |
Add _PyObject_VaCallFunctionObjArgs() private function
Issue #28915: Similar to _PyObject_CallFunctionObjArgs() but use va_list to
pass arguments.
-rw-r--r-- | Include/abstract.h | 6 | ||||
-rw-r--r-- | Objects/abstract.c | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/Include/abstract.h b/Include/abstract.h index 09efd119bf..5981d69e83 100644 --- a/Include/abstract.h +++ b/Include/abstract.h @@ -437,6 +437,12 @@ PyAPI_FUNC(PyObject *) _PyObject_CallMethodId_SizeT(PyObject *obj, 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 --git a/Objects/abstract.c b/Objects/abstract.c index 5c3344cb38..2c5057d133 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -2706,8 +2706,8 @@ _PyObject_CallMethodId_SizeT(PyObject *obj, _Py_Identifier *name, 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 @@ PyObject_CallMethodObjArgs(PyObject *callable, PyObject *name, ...) } va_start(vargs, name); - result = _PyObject_FastCallVa(callable, vargs); + result = _PyObject_VaCallFunctionObjArgs(callable, vargs); va_end(vargs); Py_DECREF(callable); @@ -2797,7 +2797,7 @@ _PyObject_CallMethodIdObjArgs(PyObject *obj, } 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_CallFunctionObjArgs(PyObject *callable, ...) PyObject *result; va_start(vargs, callable); - result = _PyObject_FastCallVa(callable, vargs); + result = _PyObject_VaCallFunctionObjArgs(callable, vargs); va_end(vargs); return result; |