summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeroen Demeyer <J.Demeyer@UGent.be>2019-05-30 10:43:59 (GMT)
committerPetr Viktorin <encukou@gmail.com>2019-05-30 10:43:58 (GMT)
commitc145f3bfbe80d498d40848450d4d33c14e2cf782 (patch)
treee290ce5742c55e9205b663729a014067f1a0fa04
parent735e8afa9ee942367b5d0807633a2b9f662cbdbf (diff)
downloadcpython-c145f3bfbe80d498d40848450d4d33c14e2cf782.zip
cpython-c145f3bfbe80d498d40848450d4d33c14e2cf782.tar.gz
cpython-c145f3bfbe80d498d40848450d4d33c14e2cf782.tar.bz2
bpo-36974: remove _PyObject_HasFastCall (GH-13460)
-rw-r--r--Include/cpython/abstract.h4
-rw-r--r--Modules/_functoolsmodule.c4
-rw-r--r--Objects/call.c16
3 files changed, 2 insertions, 22 deletions
diff --git a/Include/cpython/abstract.h b/Include/cpython/abstract.h
index 7099178..7ab2045 100644
--- a/Include/cpython/abstract.h
+++ b/Include/cpython/abstract.h
@@ -55,10 +55,6 @@ PyAPI_FUNC(int) _PyStack_UnpackDict(
40 bytes on the stack. */
#define _PY_FASTCALL_SMALL_STACK 5
-/* Return 1 if callable supports FASTCALL calling convention for positional
- arguments: see _PyObject_Vectorcall() and _PyObject_FastCallDict() */
-PyAPI_FUNC(int) _PyObject_HasFastCall(PyObject *callable);
-
PyAPI_FUNC(PyObject *) _Py_CheckFunctionResult(PyObject *callable,
PyObject *result,
const char *where);
diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c
index 13f2db9..213fb3e 100644
--- a/Modules/_functoolsmodule.c
+++ b/Modules/_functoolsmodule.c
@@ -107,7 +107,7 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
return NULL;
}
- pto->use_fastcall = _PyObject_HasFastCall(func);
+ pto->use_fastcall = (_PyVectorcall_Function(func) != NULL);
return (PyObject *)pto;
}
@@ -365,7 +365,7 @@ partial_setstate(partialobject *pto, PyObject *state)
Py_INCREF(dict);
Py_INCREF(fn);
- pto->use_fastcall = _PyObject_HasFastCall(fn);
+ pto->use_fastcall = (_PyVectorcall_Function(fn) != NULL);
Py_SETREF(pto->fn, fn);
Py_SETREF(pto->args, fnargs);
Py_SETREF(pto->kw, kw);
diff --git a/Objects/call.c b/Objects/call.c
index 183a5c2..55dfc52 100644
--- a/Objects/call.c
+++ b/Objects/call.c
@@ -9,22 +9,6 @@ static PyObject *
cfunction_call_varargs(PyObject *func, PyObject *args, PyObject *kwargs);
-int
-_PyObject_HasFastCall(PyObject *callable)
-{
- if (PyFunction_Check(callable)) {
- return 1;
- }
- else if (PyCFunction_Check(callable)) {
- return !(PyCFunction_GET_FLAGS(callable) & METH_VARARGS);
- }
- else {
- assert (PyCallable_Check(callable));
- return 0;
- }
-}
-
-
static PyObject *
null_error(void)
{