Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw.

This commit is contained in:
Yury Selivanov 2016-11-08 19:04:57 -05:00
parent c3d7dbb821
commit 692796a948
2 changed files with 5 additions and 1 deletions

View File

@ -38,6 +38,8 @@ Library
- Issue #28634: Fix asyncio.isfuture() to support unittest.Mock.
- Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw.
Documentation
-------------

View File

@ -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);
}