diff options
author | Benjamin Peterson <benjamin@python.org> | 2010-07-20 22:39:34 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2010-07-20 22:39:34 (GMT) |
commit | 20f9c3c50f5e642295040c05e574ff9dc84bf207 (patch) | |
tree | a0bb84cba5bcdcb1fb7b059930076f52d3d3225c /Python | |
parent | 013783c529cfc459d05d261f5053ad7bf7d88c29 (diff) | |
download | cpython-20f9c3c50f5e642295040c05e574ff9dc84bf207.zip cpython-20f9c3c50f5e642295040c05e574ff9dc84bf207.tar.gz cpython-20f9c3c50f5e642295040c05e574ff9dc84bf207.tar.bz2 |
revert unintended changes
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 16 | ||||
-rw-r--r-- | Python/compile.c | 4 | ||||
-rw-r--r-- | Python/symtable.c | 11 |
3 files changed, 11 insertions, 20 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index 368ad69..2d4b16a 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2052,7 +2052,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) break; TARGET(LOAD_NAME) - TARGET(LOAD_NAME_LOCAL_ONLY) w = GETITEM(names, oparg); if ((v = f->f_locals) == NULL) { PyErr_Format(PyExc_SystemError, @@ -2074,14 +2073,15 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) } } if (x == NULL) { - if (opcode != LOAD_NAME_LOCAL_ONLY) { - x = PyDict_GetItem(f->f_globals, w); - if (x == NULL) - x = PyDict_GetItem(f->f_builtins, w); - } + x = PyDict_GetItem(f->f_globals, w); if (x == NULL) { - format_exc_check_arg(PyExc_NameError, NAME_ERROR_MSG, w); - break; + x = PyDict_GetItem(f->f_builtins, w); + if (x == NULL) { + format_exc_check_arg( + PyExc_NameError, + NAME_ERROR_MSG, w); + break; + } } Py_INCREF(x); } diff --git a/Python/compile.c b/Python/compile.c index 83c9e02..aae0339 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -787,7 +787,6 @@ opcode_stack_effect(int opcode, int oparg) case LOAD_CONST: return 1; case LOAD_NAME: - case LOAD_NAME_LOCAL_ONLY: return 1; case BUILD_TUPLE: case BUILD_LIST: @@ -2482,7 +2481,6 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) optype = OP_DEREF; break; case LOCAL: - case LOCAL_ONLY: if (c->u->u_ste->ste_type == FunctionBlock) optype = OP_FAST; break; @@ -2558,7 +2556,7 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) break; case OP_NAME: switch (ctx) { - case Load: op = (scope == LOCAL_ONLY) ? LOAD_NAME_LOCAL_ONLY : LOAD_NAME; break; + case Load: op = LOAD_NAME; break; case Store: op = STORE_NAME; break; case Del: op = DELETE_NAME; break; case AugLoad: diff --git a/Python/symtable.c b/Python/symtable.c index 37bdf2a..55c9f47 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -432,14 +432,7 @@ analyze_name(PySTEntryObject *ste, PyObject *scopes, PyObject *name, long flags, return PySet_Add(free, name) >= 0; } if (flags & DEF_BOUND) { - if (ste->ste_type == ClassBlock && - !(flags & DEF_PARAM) && - bound && PySet_Contains(bound, name)) { - SET_SCOPE(scopes, name, LOCAL_ONLY); - } - else { - SET_SCOPE(scopes, name, LOCAL); - } + SET_SCOPE(scopes, name, LOCAL); if (PySet_Add(local, name) < 0) return 0; if (PySet_Discard(global, name) < 0) @@ -496,7 +489,7 @@ analyze_cells(PyObject *scopes, PyObject *free, const char *restricted) long scope; assert(PyLong_Check(v)); scope = PyLong_AS_LONG(v); - if (scope != LOCAL && scope != LOCAL_ONLY) + if (scope != LOCAL) continue; if (!PySet_Contains(free, name)) continue; |