diff --git a/teavm-core/src/main/java/org/teavm/cache/AstIO.java b/teavm-core/src/main/java/org/teavm/cache/AstIO.java index b848d020d..153495913 100644 --- a/teavm-core/src/main/java/org/teavm/cache/AstIO.java +++ b/teavm-core/src/main/java/org/teavm/cache/AstIO.java @@ -642,7 +642,7 @@ public class AstIO { if (exceptionTypeIndex >= 0) { stmt.setExceptionType(symbolTable.at(exceptionTypeIndex)); } - int exceptionVarIndex = input.readInt(); + int exceptionVarIndex = input.readShort(); if (exceptionVarIndex >= 0) { stmt.setExceptionVariable(exceptionVarIndex); } diff --git a/teavm-core/src/main/java/org/teavm/cache/ProgramIO.java b/teavm-core/src/main/java/org/teavm/cache/ProgramIO.java index 1d7b9a60c..2e878c392 100644 --- a/teavm-core/src/main/java/org/teavm/cache/ProgramIO.java +++ b/teavm-core/src/main/java/org/teavm/cache/ProgramIO.java @@ -761,6 +761,10 @@ public class ProgramIO { ConstructMultiArrayInstruction insn = new ConstructMultiArrayInstruction(); insn.setReceiver(program.variableAt(input.readShort())); insn.setItemType(ValueType.parse(symbolTable.at(input.readInt()))); + int dimensionCount = input.readByte(); + for (int i = 0; i < dimensionCount; ++i) { + insn.getDimensions().add(program.variableAt(input.readShort())); + } return insn; } case 24: {