diff options
author | Benjamin Peterson <benjamin@python.org> | 2013-10-26 17:22:08 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2013-10-26 17:22:08 (GMT) |
commit | 77353664e2fc0489bb18e2644d36b67ddea2ceef (patch) | |
tree | ce2cc7ff11331267e34c4cf748af25db0675b25e | |
parent | a577f1e0f15ca23e2916022009843b4c16ce5c96 (diff) | |
parent | 89d8cd943b25185e8d15b15636531ff84277bdab (diff) | |
download | cpython-77353664e2fc0489bb18e2644d36b67ddea2ceef.zip cpython-77353664e2fc0489bb18e2644d36b67ddea2ceef.tar.gz cpython-77353664e2fc0489bb18e2644d36b67ddea2ceef.tar.bz2 |
merge 3.3 (#19393)
-rw-r--r-- | Lib/symtable.py | 5 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/symtablemodule.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/Lib/symtable.py b/Lib/symtable.py index c0e32df..e23313b 100644 --- a/Lib/symtable.py +++ b/Lib/symtable.py @@ -10,10 +10,7 @@ import weakref __all__ = ["symtable", "SymbolTable", "Class", "Function", "Symbol"] def symtable(code, filename, compile_type): - raw = _symtable.symtable(code, filename, compile_type) - for top in raw.values(): - if top.name == 'top': - break + top = _symtable.symtable(code, filename, compile_type) return _newSymbolTable(top, filename) class SymbolTableFactory: @@ -26,6 +26,9 @@ Library contextlib.suppress context managers, which also ensures they provide reasonable help() output on instances +- Issue #19393: Fix symtable.symtable function to not be confused when there are + functions or classes named "top". + - Issue #18685: Restore re performance to pre-PEP 393 levels. - Issue #19339: telnetlib module is now using time.monotonic() when available diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c index 036fdb9..cdb4ffc 100644 --- a/Modules/symtablemodule.c +++ b/Modules/symtablemodule.c @@ -34,7 +34,7 @@ symtable_symtable(PyObject *self, PyObject *args) Py_DECREF(filename); if (st == NULL) return NULL; - t = st->st_blocks; + t = (PyObject *)st->st_top; Py_INCREF(t); PyMem_Free((void *)st->st_future); PySymtable_Free(st); |