From 6ef059097cdfc9ee4c5a5292db5c9d5a5be2f97c Mon Sep 17 00:00:00 2001 From: Yury Selivanov Date: Thu, 28 May 2015 11:21:31 -0400 Subject: Issue 24017: Drop getawaitablefunc and friends in favor of unaryfunc. --- Doc/c-api/typeobj.rst | 12 ++++++------ Include/object.h | 9 +++------ Modules/_testcapimodule.c | 2 +- Objects/genobject.c | 2 +- Python/ceval.c | 4 ++-- 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index 6213d12..37dc635 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -1357,12 +1357,12 @@ Async Object Structures Here is the structure definition:: typedef struct { - getawaitablefunc am_await; - getaiterfunc am_aiter; - aiternextfunc am_anext; + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; } PyAsyncMethods; -.. c:member:: getawaitablefunc PyAsyncMethods.am_await +.. c:member:: unaryfunc PyAsyncMethods.am_await The signature of this function is:: @@ -1373,7 +1373,7 @@ Async Object Structures This slot may be set to *NULL* if an object is not an :term:`awaitable`. -.. c:member:: getaiterfunc PyAsyncMethods.am_aiter +.. c:member:: unaryfunc PyAsyncMethods.am_aiter The signature of this function is:: @@ -1384,7 +1384,7 @@ Async Object Structures This slot may be set to *NULL* if an object does not implement asynchronous iteration protocol. -.. c:member:: aiternextfunc PyAsyncMethods.am_anext +.. c:member:: unaryfunc PyAsyncMethods.am_anext The signature of this function is:: diff --git a/Include/object.h b/Include/object.h index e173438..8afcbe9 100644 --- a/Include/object.h +++ b/Include/object.h @@ -173,9 +173,6 @@ typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t); typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *); typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *); typedef int(*objobjargproc)(PyObject *, PyObject *, PyObject *); -typedef PyObject *(*getawaitablefunc) (PyObject *); -typedef PyObject *(*getaiterfunc) (PyObject *); -typedef PyObject *(*aiternextfunc) (PyObject *); #ifndef Py_LIMITED_API /* buffer interface */ @@ -305,9 +302,9 @@ typedef struct { } PyMappingMethods; typedef struct { - getawaitablefunc am_await; - getaiterfunc am_aiter; - aiternextfunc am_anext; + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; } PyAsyncMethods; typedef struct { diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 1967686..2697ac2 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -3987,7 +3987,7 @@ awaitObject_await(awaitObject *ao) } static PyAsyncMethods awaitType_as_async = { - (getawaitablefunc)awaitObject_await, /* am_await */ + (unaryfunc)awaitObject_await, /* am_await */ 0, /* am_aiter */ 0 /* am_anext */ }; diff --git a/Objects/genobject.c b/Objects/genobject.c index 8e5624d..5d3b66c 100644 --- a/Objects/genobject.c +++ b/Objects/genobject.c @@ -708,7 +708,7 @@ PyGen_NeedsFinalizing(PyGenObject *gen) PyObject * _PyGen_GetAwaitableIter(PyObject *o) { - getawaitablefunc getter = NULL; + unaryfunc getter = NULL; PyTypeObject *ot; if (PyGen_CheckCoroutineExact(o)) { diff --git a/Python/ceval.c b/Python/ceval.c index afb0f89..7d39d9b 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1927,7 +1927,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) } TARGET(GET_AITER) { - getaiterfunc getter = NULL; + unaryfunc getter = NULL; PyObject *iter = NULL; PyObject *awaitable = NULL; PyObject *obj = TOP(); @@ -1974,7 +1974,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) } TARGET(GET_ANEXT) { - aiternextfunc getter = NULL; + unaryfunc getter = NULL; PyObject *next_iter = NULL; PyObject *awaitable = NULL; PyObject *aiter = TOP(); -- cgit v0.12