Commit 72acc2cd authored by Stefan Behnel's avatar Stefan Behnel

special case delegation to normal Python generators to avoid Python call indirections

parent 031ba3e1
...@@ -743,6 +743,11 @@ static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { ...@@ -743,6 +743,11 @@ static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
ret = __Pyx_async_gen_asend_send((__pyx_PyAsyncGenASend *)yf, value); ret = __Pyx_async_gen_asend_send((__pyx_PyAsyncGenASend *)yf, value);
} else } else
#endif #endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000
if (PyGen_CheckExact(yf)) {
ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
} else
#endif
{ {
if (value == Py_None) if (value == Py_None)
ret = Py_TYPE(yf)->tp_iternext(yf); ret = Py_TYPE(yf)->tp_iternext(yf);
...@@ -817,6 +822,11 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) { ...@@ -817,6 +822,11 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) {
if (__Pyx_Generator_CheckExact(yf)) { if (__Pyx_Generator_CheckExact(yf)) {
ret = __Pyx_Generator_Next(yf); ret = __Pyx_Generator_Next(yf);
} else } else
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000
if (PyGen_CheckExact(yf)) {
ret = _PyGen_Send((PyGenObject*)yf, NULL);
} else
#endif #endif
ret = Py_TYPE(yf)->tp_iternext(yf); ret = Py_TYPE(yf)->tp_iternext(yf);
gen->is_running = 0; gen->is_running = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment