Fix compilation of pop2 instruction when top two entries are values of type 1

This commit is contained in:
Alexey Andreev 2016-04-15 23:07:30 +03:00
parent e557a25a04
commit 2d79da7b1b

View File

@ -148,11 +148,11 @@ public class ProgramParser implements VariableDebugInformation {
private int popDouble() {
if (stack == null || stack.type != DOUBLE_SECOND_HALF) {
throw new AssertionError("Illegal stack state at " + index);
throw new AssertionError("***Illegal stack state at " + index);
}
stack = stack.next;
if (stack == null || stack.type != DOUBLE_FIRST_HALF) {
throw new AssertionError("Illegal stack state at " + index);
throw new AssertionError("***Illegal stack state at " + index);
}
int depth = stack.depth;
stack = stack.next;
@ -1047,6 +1047,7 @@ public class ProgramParser implements VariableDebugInformation {
case Opcodes.POP2:
if (stack.type == SINGLE) {
popSingle();
popSingle();
} else {
popDouble();
}