Anyone else seeing a build error in trunk?
lzl:
[echo] Compiling
/Users/clients/laszlo/src/svn/openlaszlo/trunk-f/lps/includes/lfc/lzpreloader.lzl
[java] Exception compiling scriptfile: java.lang.Byte cannot be cast to
java.lang.Integer
[java] java.lang.ClassCastException: java.lang.Byte cannot be cast to
java.lang.Integer
[java] at
org.openlaszlo.sc.Instructions$DefineFunction2Instruction.writeArgs(Instructions.java:836)
[java] at
org.openlaszlo.sc.Instructions$ConcreteInstruction.writeBytes(Instructions.java:376)
[java] at org.openlaszlo.sc.Assembler.resolveTarget(Assembler.java:263)
[java] at org.openlaszlo.sc.Assembler.emit(Assembler.java:319)
[java] at org.openlaszlo.sc.Optimizer.emit(Optimizer.java:120)
[java] at org.openlaszlo.sc.Optimizer.assemble(Optimizer.java:52)
[java] at org.openlaszlo.sc.Compiler.compile(Compiler.java:412)
[java] at org.openlaszlo.sc.lzsc.compile(lzsc.java:127)
[java] at org.openlaszlo.sc.lzsc.compile(lzsc.java:366)
[java] at org.openlaszlo.sc.Main.main(Main.java:23)
[java] Compilation aborted.
Changing Instructions.java line 836 thusly seems to fix it:
public void writeArgs(ByteBuffer bytes, Map<String, Integer> pool) {
assert bytes.order() == ByteOrder.LITTLE_ENDIAN;
try {
List<Object> args = this.args;
String fname = (String)args.get(1);
if (fname == null) fname = "";
==> byte nregs = ((Number)args.get(2)).byteValue(); // was (Integer)
cast
List<Object> fnargs = args.subList(3, args.size());
There are other similar casts of elements of args to Integer:
Instructions.java: lines 419, 432, 653. Don't know if they are similarly
affected.
- Don
--
Don Anderson
Java/C/C++, Berkeley DB, systems consultant
voice: 617-306-2057
email: [email protected]
www: http://www.ddanderson.com
blog: http://libdb.wordpress.com