diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2000-02-17 22:58:54 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2000-02-17 22:58:54 (GMT) |
commit | efd0694a2dc5f18b1205a0535949f4fb42fa3745 (patch) | |
tree | 747b130c512402939462259a51c1a8bd5ecd46b8 /Tools | |
parent | 3ec7e2c4be9b3127ed1b10de6e3c48e1786c1a10 (diff) | |
download | cpython-efd0694a2dc5f18b1205a0535949f4fb42fa3745.zip cpython-efd0694a2dc5f18b1205a0535949f4fb42fa3745.tar.gz cpython-efd0694a2dc5f18b1205a0535949f4fb42fa3745.tar.bz2 |
changes to _lookupName
- removed now (happily) unused second arg
- need to verify results of [].index are correct; for building consts,
need to have same value and same type, e.g. 2 not the same as 2L
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/compiler/compiler/pyassem.py | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/Tools/compiler/compiler/pyassem.py b/Tools/compiler/compiler/pyassem.py index 7efc4ab..5d5ac4d 100644 --- a/Tools/compiler/compiler/pyassem.py +++ b/Tools/compiler/compiler/pyassem.py @@ -63,7 +63,6 @@ class PyAssembler: self.insts = [] # used by makeCodeObject self._getArgCount(args) - print name, args, self.argcount self.code = '' self.consts = [docstring] self.filename = filename @@ -260,20 +259,20 @@ class PyAssembler: localOps = ('LOAD_FAST', 'STORE_FAST', 'DELETE_FAST') globalOps = ('LOAD_GLOBAL', 'STORE_GLOBAL', 'DELETE_GLOBAL') - def _lookupName(self, name, list, list2=None): - """Return index of name in list, appending if necessary - - Yicky hack: Second list can be used for lookup of local names - where the name needs to be added to varnames and names. - """ + def _lookupName(self, name, list): + """Return index of name in list, appending if necessary""" if name in list: - return list.index(name) - else: - end = len(list) - list.append(name) - if list2 is not None: - list2.append(name) - return end + i = list.index(name) + # this is cheap, but incorrect in some cases, e.g 2 vs. 2L + if type(name) == type(list[i]): + return i + for i in range(len(list)): + elt = list[i] + if type(elt) == type(name) and elt == name: + return i + end = len(list) + list.append(name) + return end # Convert some stuff from the dis module for local use |