From: Guido van Rossum Date: Fri, 14 Feb 1997 16:32:14 +0000 (+0000) Subject: *Don't* kill all local variables on function exit. This will be done X-Git-Tag: v1.5a1~377 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0d85be19e29788d6221295e8910f5d9a671eac85;p=python *Don't* kill all local variables on function exit. This will be done by the frameobject dealloc when it is time for the locals to go. When there's still a traceback object referencing this stack frame, we don't want the local variables to disappear yet. (Hmm... Shouldn't they be copied to the f_locals dictionary?) --- diff --git a/Python/ceval.c b/Python/ceval.c index 65aad61def..37a41687fb 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1709,18 +1709,6 @@ eval_code2(co, globals, locals, --recursion_depth; fail: /* Jump here from prelude on failure */ - - /* Kill all local variables */ - - { - int i; - for (i = co->co_nlocals; --i >= 0; ++fastlocals) { - if (*fastlocals != NULL) { - DECREF(*fastlocals); - *fastlocals = NULL; - } - } - } /* Restore previous frame and release the current one */