]> granicus.if.org Git - python/commitdiff
Add _PyObject_VaCallFunctionObjArgs() private function
authorVictor Stinner <victor.stinner@gmail.com>
Thu, 8 Dec 2016 23:40:33 +0000 (00:40 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Thu, 8 Dec 2016 23:40:33 +0000 (00:40 +0100)
Issue #28915: Similar to _PyObject_CallFunctionObjArgs() but use va_list to
pass arguments.

Include/abstract.h
Objects/abstract.c

index 09efd119bf35d2af5f311bdffd8929879f436bb7..5981d69e83c280f8ddaf4085fd605e3cd5e771a7 100644 (file)
@@ -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 *
index 5c3344cb387159f57711129864250799354f4da5..2c5057d133ea99661730357671bb1e8229a74371 100644 (file)
@@ -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;