From: Finn B. <bc...@us...> - 2001-10-28 14:46:24
|
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 |