summaryrefslogtreecommitdiffstats
path: root/Lib/compiler
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2000-02-17 22:58:54 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2000-02-17 22:58:54 (GMT)
commitefd0694a2dc5f18b1205a0535949f4fb42fa3745 (patch)
tree747b130c512402939462259a51c1a8bd5ecd46b8 /Lib/compiler
parent3ec7e2c4be9b3127ed1b10de6e3c48e1786c1a10 (diff)
downloadcpython-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 'Lib/compiler')
-rw-r--r--Lib/compiler/pyassem.py27
1 files changed, 13 insertions, 14 deletions
diff --git a/Lib/compiler/pyassem.py b/Lib/compiler/pyassem.py
index 7efc4ab..5d5ac4d 100644
--- a/Lib/compiler/pyassem.py
+++ b/Lib/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