From 00148226df1af0f6ef120492c07fb5a8013087fc Mon Sep 17 00:00:00 2001 From: "Phillip J. Eby" Date: Sat, 13 Aug 2005 03:29:00 +0000 Subject: Fix a too-aggressive assert (see SF#1257960). Previously, gen_iternext was never called during interpreter shutdown GC, so the f_back!=NULL assertion was correct. Now that generators get close()d during GC, the assertion was being triggered because the generator close() was being called as the top-level frame. However, nothing actually is broken by this; it's just that the condition was unexpected in previous Python versions. --- Objects/genobject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Objects/genobject.c b/Objects/genobject.c index d281274..b001b01 100644 --- a/Objects/genobject.c +++ b/Objects/genobject.c @@ -82,7 +82,7 @@ gen_send_ex(PyGenObject *gen, PyObject *arg, int exc) /* Don't keep the reference to f_back any longer than necessary. It * may keep a chain of frames alive or it could create a reference * cycle. */ - assert(f->f_back != NULL); + assert(f->f_back == tstate->frame); Py_CLEAR(f->f_back); /* If the generator just returned (as opposed to yielding), signal -- cgit v0.12