@@ -93,11 +93,6 @@ typedef struct {
9393 PyObject * sw_arg ;
9494} TaskStepMethWrapper ;
9595
96- typedef struct {
97- PyObject_HEAD
98- TaskObj * ww_task ;
99- } TaskWakeupMethWrapper ;
100-
10196typedef struct {
10297 PyObject_HEAD
10398 PyObject * rl_loop ;
@@ -1870,93 +1865,15 @@ TaskStepMethWrapper_new(TaskObj *task, PyObject *arg)
18701865 return (PyObject * ) o ;
18711866}
18721867
1873- /* ----- Task._wakeup wrapper */
1874-
1875- static PyObject *
1876- TaskWakeupMethWrapper_call (TaskWakeupMethWrapper * o ,
1877- PyObject * args , PyObject * kwds )
1878- {
1879- PyObject * fut ;
1880-
1881- if (kwds != NULL && PyDict_GET_SIZE (kwds ) != 0 ) {
1882- PyErr_SetString (PyExc_TypeError , "function takes no keyword arguments" );
1883- return NULL ;
1884- }
1885- if (!PyArg_ParseTuple (args , "O" , & fut )) {
1886- return NULL ;
1887- }
1888-
1889- return task_wakeup (o -> ww_task , fut );
1890- }
1891-
1892- static int
1893- TaskWakeupMethWrapper_clear (TaskWakeupMethWrapper * o )
1894- {
1895- Py_CLEAR (o -> ww_task );
1896- return 0 ;
1897- }
1898-
1899- static int
1900- TaskWakeupMethWrapper_traverse (TaskWakeupMethWrapper * o ,
1901- visitproc visit , void * arg )
1902- {
1903- Py_VISIT (o -> ww_task );
1904- return 0 ;
1905- }
1906-
1907- static void
1908- TaskWakeupMethWrapper_dealloc (TaskWakeupMethWrapper * o )
1909- {
1910- PyObject_GC_UnTrack (o );
1911- (void )TaskWakeupMethWrapper_clear (o );
1912- Py_TYPE (o )-> tp_free (o );
1913- }
1914-
1915- static PyObject *
1916- TaskWakeupMethWrapper_get___self__ (TaskWakeupMethWrapper * o , void * Py_UNUSED (ignored ))
1917- {
1918- if (o -> ww_task ) {
1919- Py_INCREF (o -> ww_task );
1920- return (PyObject * )o -> ww_task ;
1921- }
1922- Py_RETURN_NONE ;
1923- }
1868+ /* ----- Task._wakeup implementation */
19241869
1925- static PyGetSetDef TaskWakeupMethWrapper_getsetlist [] = {
1926- {"__self__" , (getter )TaskWakeupMethWrapper_get___self__ , NULL , NULL },
1927- {NULL } /* Sentinel */
1928- };
1929-
1930- static PyTypeObject TaskWakeupMethWrapper_Type = {
1931- PyVarObject_HEAD_INIT (NULL , 0 )
1932- "TaskWakeupMethWrapper" ,
1933- .tp_basicsize = sizeof (TaskWakeupMethWrapper ),
1934- .tp_itemsize = 0 ,
1935- .tp_dealloc = (destructor )TaskWakeupMethWrapper_dealloc ,
1936- .tp_call = (ternaryfunc )TaskWakeupMethWrapper_call ,
1937- .tp_getattro = PyObject_GenericGetAttr ,
1938- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC ,
1939- .tp_traverse = (traverseproc )TaskWakeupMethWrapper_traverse ,
1940- .tp_clear = (inquiry )TaskWakeupMethWrapper_clear ,
1941- .tp_getset = TaskWakeupMethWrapper_getsetlist ,
1870+ static PyMethodDef TaskWakeupDef = {
1871+ "task_wakeup" ,
1872+ (PyCFunction )task_wakeup ,
1873+ METH_O ,
1874+ NULL
19421875};
19431876
1944- static PyObject *
1945- TaskWakeupMethWrapper_new (TaskObj * task )
1946- {
1947- TaskWakeupMethWrapper * o ;
1948- o = PyObject_GC_New (TaskWakeupMethWrapper , & TaskWakeupMethWrapper_Type );
1949- if (o == NULL ) {
1950- return NULL ;
1951- }
1952-
1953- Py_INCREF (task );
1954- o -> ww_task = task ;
1955-
1956- PyObject_GC_Track (o );
1957- return (PyObject * ) o ;
1958- }
1959-
19601877/* ----- Task introspection helpers */
19611878
19621879static int
@@ -2803,7 +2720,7 @@ task_step_impl(TaskObj *task, PyObject *exc)
28032720 fut -> fut_blocking = 0 ;
28042721
28052722 /* result.add_done_callback(task._wakeup) */
2806- wrapper = TaskWakeupMethWrapper_new ( task );
2723+ wrapper = PyCFunction_New ( & TaskWakeupDef , ( PyObject * ) task );
28072724 if (wrapper == NULL ) {
28082725 goto fail ;
28092726 }
@@ -2884,7 +2801,7 @@ task_step_impl(TaskObj *task, PyObject *exc)
28842801 goto fail ;
28852802 }
28862803
2887- wrapper = TaskWakeupMethWrapper_new ( task );
2804+ wrapper = PyCFunction_New ( & TaskWakeupDef , ( PyObject * ) task );
28882805 if (wrapper == NULL ) {
28892806 goto fail ;
28902807 }
@@ -3458,9 +3375,6 @@ PyInit__asyncio(void)
34583375 if (PyType_Ready (& TaskStepMethWrapper_Type ) < 0 ) {
34593376 return NULL ;
34603377 }
3461- if (PyType_Ready (& TaskWakeupMethWrapper_Type ) < 0 ) {
3462- return NULL ;
3463- }
34643378 if (PyType_Ready (& PyRunningLoopHolder_Type ) < 0 ) {
34653379 return NULL ;
34663380 }
0 commit comments