the p-code generation of lookupswitch now correctly does -1 from the count of cases (#74)

This commit is contained in:
nename0
2019-04-19 15:46:50 +02:00
committed by Jindra Petřík
parent 89bff8b687
commit d69d81ea3f

View File

@@ -661,7 +661,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
bodiesOffsets.add(0, -(insToBytes(bodies).length + casesLen));
}
lookupOp.operands[0] = defOffset;
lookupOp.operands[1] = item.valuesMapping.size();
lookupOp.operands[1] = item.valuesMapping.size() - 1; // as per avm2 spec: "There are case_count+1 case offsets"
for (int i = 0; i < item.valuesMapping.size(); i++) {
lookupOp.operands[2 + i] = bodiesOffsets.get(item.valuesMapping.get(i));
}