void (InstructionSequence seq) { defaultDestination = seq.getPointerByRelOffset(operands[0]); int prefix = opcode == CodeConstants.opc_tableswitch ? 3 : 2; int len = operands.length - prefix; int low = 0; if (opcode == CodeConstants.opc_lookupswitch) { len /= 2; } else { low = operands[1]; } destinations = new int[len]; values = new int[len]; for (int i = 0, k = 0; i < len; i++, k++) { if (opcode == CodeConstants.opc_lookupswitch) { values[i] = operands[prefix + k]; k++; } else { values[i] = low + k; } destinations[i] = seq.getPointerByRelOffset(operands[prefix + k]); } }