Update of /cvsroot/jython/jython/Tools/jythonc
In directory usw-pr-cvs1:/tmp/cvs-serv25605
Modified Files:
BaseEvaluator.py
Log Message:
Fix "[ #448485 ] Tuple unpacking raises KeyError" by calling
Py.unpackSequence() just like CodeCompiler does.
Index: BaseEvaluator.py
===================================================================
RCS file: /cvsroot/jython/jython/Tools/jythonc/BaseEvaluator.py,v
retrieving revision 2.11
retrieving revision 2.12
diff -C2 -d -r2.11 -r2.12
*** BaseEvaluator.py 2001/07/29 14:59:13 2.11
--- BaseEvaluator.py 2001/10/28 14:46:20 2.12
***************
*** 107,116 ****
del seq[-1]
n = len(seq)
- tmp, code = self.makeTemp(value)
- stmts = [code]
for i in range(n):
! stmts.append(self.set(seq[i], tmp.igetitem(i)))
! self.freeTemp(tmp)
return stmts
--- 107,120 ----
del seq[-1]
n = len(seq)
+ unpacked = jast.InvokeStatic("org.python.core.Py", "unpackSequence",
+ [value.asAny(), jast.IntegerConstant(n)])
+ tmp = self.frame.gettemp('PyObject[]')
+ stmts = [ jast.Set(tmp, unpacked) ]
+
for i in range(n):
! code = jast.Subscript(tmp, i)
! stmts.append(self.set(seq[i], self.factory.makePyObject(code)))
! self.frame.freetemp(tmp)
return stmts
|