From 7e1a9aacff95c68d284f31666fe293fa2db5406d Mon Sep 17 00:00:00 2001 From: Jeroen Demeyer Date: Thu, 20 Jun 2019 17:38:46 +0200 Subject: [PATCH] bpo-37151: remove _PyCFunction_FastCallDict (GH-14269) --- Include/methodobject.h | 5 ----- Objects/call.c | 18 ------------------ Python/ceval.c | 8 ++++---- Tools/gdb/libpython.py | 3 +-- 4 files changed, 5 insertions(+), 29 deletions(-) diff --git a/Include/methodobject.h b/Include/methodobject.h index e92adde7bf6..f4a6682830c 100644 --- a/Include/methodobject.h +++ b/Include/methodobject.h @@ -42,11 +42,6 @@ PyAPI_FUNC(int) PyCFunction_GetFlags(PyObject *); PyAPI_FUNC(PyObject *) PyCFunction_Call(PyObject *, PyObject *, PyObject *); #ifndef Py_LIMITED_API -PyAPI_FUNC(PyObject *) _PyCFunction_FastCallDict(PyObject *func, - PyObject *const *args, - Py_ssize_t nargs, - PyObject *kwargs); - PyAPI_FUNC(PyObject *) _PyCFunction_Vectorcall(PyObject *func, PyObject *const *stack, size_t nargsf, diff --git a/Objects/call.c b/Objects/call.c index 75dbd6f5262..8a1ce7f55fe 100644 --- a/Objects/call.c +++ b/Objects/call.c @@ -495,24 +495,6 @@ exit: } -PyObject * -_PyCFunction_FastCallDict(PyObject *func, - PyObject *const *args, Py_ssize_t nargs, - PyObject *kwargs) -{ - PyObject *result; - - assert(func != NULL); - assert(PyCFunction_Check(func)); - - result = _PyMethodDef_RawFastCallDict(((PyCFunctionObject*)func)->m_ml, - PyCFunction_GET_SELF(func), - args, nargs, kwargs); - result = _Py_CheckFunctionResult(func, result, NULL); - return result; -} - - PyObject * _PyMethodDef_RawFastCallKeywords(PyMethodDef *method, PyObject *self, PyObject *const *args, Py_ssize_t nargs, diff --git a/Python/ceval.c b/Python/ceval.c index 60367a665d7..4ca986a9451 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -5018,10 +5018,10 @@ do_call_core(PyThreadState *tstate, PyObject *func, PyObject *callargs, PyObject return NULL; } - C_TRACE(result, _PyCFunction_FastCallDict(func, - &_PyTuple_ITEMS(callargs)[1], - nargs - 1, - kwdict)); + C_TRACE(result, _PyObject_FastCallDict(func, + &_PyTuple_ITEMS(callargs)[1], + nargs - 1, + kwdict)); Py_DECREF(func); return result; } diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index 93f720ab7e2..abfea964a3d 100755 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -1563,8 +1563,7 @@ class Frame(object): if not caller: return False - if caller in ('_PyCFunction_FastCallDict', - '_PyCFunction_Vectorcall', + if caller in ('_PyCFunction_Vectorcall', 'cfunction_call_varargs'): arg_name = 'func' # Within that frame: