summaryrefslogtreecommitdiffstats
path: root/Modules/symtablemodule.c
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2001-02-09 22:22:18 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2001-02-09 22:22:18 (GMT)
commitcb17ae8b19c35cc63e7daec871c025d903c49105 (patch)
tree763b5b42fc1a889f7445f77263aab2c5c3dd13a3 /Modules/symtablemodule.c
parent670fa52698e90b5025dc2434310eada42fcfdd4a (diff)
downloadcpython-cb17ae8b19c35cc63e7daec871c025d903c49105.zip
cpython-cb17ae8b19c35cc63e7daec871c025d903c49105.tar.gz
cpython-cb17ae8b19c35cc63e7daec871c025d903c49105.tar.bz2
Relax the rules for using 'from ... import *' and exec in the presence
of nested functions. Either is allowed in a function if it contains no defs or lambdas or the defs and lambdas it contains have no free variables. If a function is itself nested and has free variables, either is illegal. Revise the symtable to use a PySymtableEntryObject, which holds all the revelent information for a scope, rather than using a bunch of st_cur_XXX pointers in the symtable struct. The changes simplify the internal management of the current symtable scope and of the stack. Added new C source file: Python/symtable.c. (Does the Windows build process need to be updated?) As part of these changes, the initial _symtable module interface introduced in 2.1a2 is replaced. A dictionary of PySymtableEntryObjects are returned.
Diffstat (limited to 'Modules/symtablemodule.c')
-rw-r--r--Modules/symtablemodule.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c
index ccf4aba..ce1f206 100644
--- a/Modules/symtablemodule.c
+++ b/Modules/symtablemodule.c
@@ -31,7 +31,7 @@ symtable_symtable(PyObject *self, PyObject *args)
st = Py_SymtableString(str, filename, start);
if (st == NULL)
return NULL;
- t = Py_BuildValue("OO", st->st_symbols, st->st_scopes);
+ t = Py_BuildValue("O", st->st_symbols);
PySymtable_Free(st);
return t;
}