diff options
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Modules/_asynciomodule.c | 4 |
2 files changed, 5 insertions, 1 deletions
@@ -38,6 +38,8 @@ Library - Issue #28634: Fix asyncio.isfuture() to support unittest.Mock. +- Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw. + Documentation ------------- diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c index 7df6fa5..df81b10 100644 --- a/Modules/_asynciomodule.c +++ b/Modules/_asynciomodule.c @@ -1044,14 +1044,16 @@ FutureIter_throw(futureiterobject *self, PyObject *args) else { if (PyExceptionClass_Check(type)) { val = PyObject_CallObject(type, NULL); + PyErr_SetObject(type, val); + Py_DECREF(val); } else { val = type; assert (PyExceptionInstance_Check(val)); type = (PyObject*)Py_TYPE(val); assert (PyExceptionClass_Check(type)); + PyErr_SetObject(type, val); } - PyErr_SetObject(type, val); } return FutureIter_iternext(self); } |