summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/compiler/pyassem.py27
-rw-r--r--Tools/compiler/compiler/pyassem.py27
2 files changed, 26 insertions, 28 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
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