changeset: 104991:345904bd0456 branch: 3.6 parent: 104989:4e38360f4fef user: Yury Selivanov date: Tue Nov 08 19:04:57 2016 -0500 files: Misc/NEWS Modules/_asynciomodule.c description: Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw. diff -r 4e38360f4fef -r 345904bd0456 Misc/NEWS --- a/Misc/NEWS Tue Nov 08 16:57:22 2016 -0500 +++ b/Misc/NEWS Tue Nov 08 19:04:57 2016 -0500 @@ -38,6 +38,8 @@ - Issue #28634: Fix asyncio.isfuture() to support unittest.Mock. +- Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw. + Documentation ------------- diff -r 4e38360f4fef -r 345904bd0456 Modules/_asynciomodule.c --- a/Modules/_asynciomodule.c Tue Nov 08 16:57:22 2016 -0500 +++ b/Modules/_asynciomodule.c Tue Nov 08 19:04:57 2016 -0500 @@ -1044,14 +1044,16 @@ 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); }