]> granicus.if.org Git - python/commitdiff
bpo-37231: remove _PyObject_FastCall_Prepend (GH-14153)
authorJeroen Demeyer <J.Demeyer@UGent.be>
Mon, 17 Jun 2019 11:41:33 +0000 (13:41 +0200)
committerInada Naoki <songofacandy@gmail.com>
Mon, 17 Jun 2019 11:41:32 +0000 (20:41 +0900)
Include/cpython/abstract.h
Objects/call.c

index 7ab2045923d83de03eef5cf6aeed503129f67024..d0369122287b87fb20761a2287fc2dcbfa0b420c 100644 (file)
@@ -156,12 +156,6 @@ PyAPI_FUNC(PyObject *) _PyObject_Call_Prepend(
     PyObject *args,
     PyObject *kwargs);
 
-PyAPI_FUNC(PyObject *) _PyObject_FastCall_Prepend(
-    PyObject *callable,
-    PyObject *obj,
-    PyObject *const *args,
-    Py_ssize_t nargs);
-
 /* Like PyObject_CallMethod(), but expect a _Py_Identifier*
    as the method name. */
 PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj,
index 8eae1e10d8c556407e5d5fa3ba70f547fb85bf16..5bef9f566e8fe36ae8c18a2bba722f4f62966aef 100644 (file)
@@ -837,42 +837,6 @@ PyObject_CallObject(PyObject *callable, PyObject *args)
 }
 
 
-/* Positional arguments are obj followed by args:
-   call callable(obj, *args, **kwargs) */
-PyObject *
-_PyObject_FastCall_Prepend(PyObject *callable, PyObject *obj,
-                           PyObject *const *args, Py_ssize_t nargs)
-{
-    PyObject *small_stack[_PY_FASTCALL_SMALL_STACK];
-    PyObject **args2;
-    PyObject *result;
-
-    nargs++;
-    if (nargs <= (Py_ssize_t)Py_ARRAY_LENGTH(small_stack)) {
-        args2 = small_stack;
-    }
-    else {
-        args2 = PyMem_Malloc(nargs * sizeof(PyObject *));
-        if (args2 == NULL) {
-            PyErr_NoMemory();
-            return NULL;
-        }
-    }
-
-    /* use borrowed references */
-    args2[0] = obj;
-    if (nargs > 1) {
-        memcpy(&args2[1], args, (nargs - 1) * sizeof(PyObject *));
-    }
-
-    result = _PyObject_FastCall(callable, args2, nargs);
-    if (args2 != small_stack) {
-        PyMem_Free(args2);
-    }
-    return result;
-}
-
-
 /* Call callable(obj, *args, **kwargs). */
 PyObject *
 _PyObject_Call_Prepend(PyObject *callable,