/* * Fernflower - The Analytical Java Decompiler * http://www.reversed-java.com * * (C) 2008 - 2010, Stiver * * This software is NEITHER public domain NOR free software * as per GNU License. See license.txt for more details. * * This software is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. */ package org.jetbrains.java.decompiler.code; /* * opc_tableswitch, lookupswitch */ public class SwitchInstruction extends Instruction { private int[] destinations; private int[] values; private int defaultdest; public SwitchInstruction() {} public void initInstruction(InstructionSequence seq) { int pref = (opcode==CodeConstants.opc_tableswitch?3:2); int len = this.getOperands().length - pref; defaultdest = seq.getPointerByRelOffset(this.getOperand(0)); int low = 0; if(opcode==CodeConstants.opc_lookupswitch) { len/=2; } else { low = this.getOperand(1); } destinations = new int[len]; values = new int[len]; for(int i=0,k=0;i