From: Jeremy Hylton Date: Mon, 5 Feb 2001 17:23:16 +0000 (+0000) Subject: SF patch 103596 by Nick Mathewson: rause UnboundLocalError for X-Git-Tag: v2.1b1~514 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2524d699f572c5839dcc5c6a7ce06533ac2ef0a6;p=thirdparty%2FPython%2Fcpython.git SF patch 103596 by Nick Mathewson: rause UnboundLocalError for uninitialized free variables --- diff --git a/Python/ceval.c b/Python/ceval.c index 264ba30a759f..9d6549572f56 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1646,6 +1646,22 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals, case LOAD_DEREF: x = freevars[oparg]; w = PyCell_Get(x); + if (w == NULL) { + if (oparg < f->f_ncells) + v = PyTuple_GetItem(co->co_cellvars, + oparg); + else + v = PyTuple_GetItem( + co->co_freevars, + oparg - f->f_ncells); + + format_exc_check_arg( + PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + v); + err = -1; + break; + } Py_INCREF(w); PUSH(w); break;