diff options
Diffstat (limited to 'Tools/compiler')
-rw-r--r-- | Tools/compiler/compiler/pyassem.py | 2 | ||||
-rw-r--r-- | Tools/compiler/compiler/pycodegen.py | 14 |
2 files changed, 8 insertions, 8 deletions
diff --git a/Tools/compiler/compiler/pyassem.py b/Tools/compiler/compiler/pyassem.py index 447a8e7..15e91f4 100644 --- a/Tools/compiler/compiler/pyassem.py +++ b/Tools/compiler/compiler/pyassem.py @@ -495,7 +495,7 @@ class TupleArg: def __repr__(self): return "TupleArg(%s, %s)" % (self.count, self.names) def getName(self): - return ".nested%d" % self.count + return ".%d" % self.count def getArgCount(args): argcount = len(args) diff --git a/Tools/compiler/compiler/pycodegen.py b/Tools/compiler/compiler/pycodegen.py index c0bbed3..691232f 100644 --- a/Tools/compiler/compiler/pycodegen.py +++ b/Tools/compiler/compiler/pycodegen.py @@ -1101,11 +1101,10 @@ class AbstractFunctionCode: self.emit('RETURN_VALUE') def generateArgUnpack(self, args): - count = 0 - for arg in args: + for i in range(len(args)): + arg = args[i] if type(arg) == types.TupleType: - self.emit('LOAD_FAST', '.nested%d' % count) - count = count + 1 + self.emit('LOAD_FAST', '.%d' % (i * 2)) self.unpackSequence(arg) def unpackSequence(self, tup): @@ -1184,13 +1183,14 @@ def generateArgList(arglist): args = [] extra = [] count = 0 - for elt in arglist: + for i in range(len(arglist)): + elt = arglist[i] if type(elt) == types.StringType: args.append(elt) elif type(elt) == types.TupleType: - args.append(TupleArg(count, elt)) - count = count + 1 + args.append(TupleArg(i * 2, elt)) extra.extend(misc.flatten(elt)) + count = count + 1 else: raise ValueError, "unexpect argument type:", elt return args + extra, count |