Package proguard.classfile.instruction
Class TableSwitchInstruction
- java.lang.Object
-
- proguard.classfile.instruction.Instruction
-
- proguard.classfile.instruction.SwitchInstruction
-
- proguard.classfile.instruction.TableSwitchInstruction
-
public class TableSwitchInstruction extends SwitchInstruction
ThisInstruction
represents a table switch instruction.
-
-
Field Summary
Fields Modifier and Type Field Description int
highCase
int
lowCase
-
Fields inherited from class proguard.classfile.instruction.SwitchInstruction
defaultOffset, jumpOffsets
-
Fields inherited from class proguard.classfile.instruction.Instruction
ARRAY_T_BOOLEAN, ARRAY_T_BYTE, ARRAY_T_CHAR, ARRAY_T_DOUBLE, ARRAY_T_FLOAT, ARRAY_T_INT, ARRAY_T_LONG, ARRAY_T_SHORT, NAMES, OP_AALOAD, OP_AASTORE, OP_ACONST_NULL, OP_ALOAD, OP_ALOAD_0, OP_ALOAD_1, OP_ALOAD_2, OP_ALOAD_3, OP_ANEWARRAY, OP_ARETURN, OP_ARRAYLENGTH, OP_ASTORE, OP_ASTORE_0, OP_ASTORE_1, OP_ASTORE_2, OP_ASTORE_3, OP_ATHROW, OP_BALOAD, OP_BASTORE, OP_BIPUSH, OP_CALOAD, OP_CASTORE, OP_CHECKCAST, OP_D2F, OP_D2I, OP_D2L, OP_DADD, OP_DALOAD, OP_DASTORE, OP_DCMPG, OP_DCMPL, OP_DCONST_0, OP_DCONST_1, OP_DDIV, OP_DLOAD, OP_DLOAD_0, OP_DLOAD_1, OP_DLOAD_2, OP_DLOAD_3, OP_DMUL, OP_DNEG, OP_DREM, OP_DRETURN, OP_DSTORE, OP_DSTORE_0, OP_DSTORE_1, OP_DSTORE_2, OP_DSTORE_3, OP_DSUB, OP_DUP, OP_DUP_X1, OP_DUP_X2, OP_DUP2, OP_DUP2_X1, OP_DUP2_X2, OP_F2D, OP_F2I, OP_F2L, OP_FADD, OP_FALOAD, OP_FASTORE, OP_FCMPG, OP_FCMPL, OP_FCONST_0, OP_FCONST_1, OP_FCONST_2, OP_FDIV, OP_FLOAD, OP_FLOAD_0, OP_FLOAD_1, OP_FLOAD_2, OP_FLOAD_3, OP_FMUL, OP_FNEG, OP_FREM, OP_FRETURN, OP_FSTORE, OP_FSTORE_0, OP_FSTORE_1, OP_FSTORE_2, OP_FSTORE_3, OP_FSUB, OP_GETFIELD, OP_GETSTATIC, OP_GOTO, OP_GOTO_W, OP_I2B, OP_I2C, OP_I2D, OP_I2F, OP_I2L, OP_I2S, OP_IADD, OP_IALOAD, OP_IAND, OP_IASTORE, OP_ICONST_0, OP_ICONST_1, OP_ICONST_2, OP_ICONST_3, OP_ICONST_4, OP_ICONST_5, OP_ICONST_M1, OP_IDIV, OP_IFACMPEQ, OP_IFACMPNE, OP_IFEQ, OP_IFGE, OP_IFGT, OP_IFICMPEQ, OP_IFICMPGE, OP_IFICMPGT, OP_IFICMPLE, OP_IFICMPLT, OP_IFICMPNE, OP_IFLE, OP_IFLT, OP_IFNE, OP_IFNONNULL, OP_IFNULL, OP_IINC, OP_ILOAD, OP_ILOAD_0, OP_ILOAD_1, OP_ILOAD_2, OP_ILOAD_3, OP_IMUL, OP_INEG, OP_INSTANCEOF, OP_INVOKEDYNAMIC, OP_INVOKEINTERFACE, OP_INVOKESPECIAL, OP_INVOKESTATIC, OP_INVOKEVIRTUAL, OP_IOR, OP_IREM, OP_IRETURN, OP_ISHL, OP_ISHR, OP_ISTORE, OP_ISTORE_0, OP_ISTORE_1, OP_ISTORE_2, OP_ISTORE_3, OP_ISUB, OP_IUSHR, OP_IXOR, OP_JSR, OP_JSR_W, OP_L2D, OP_L2F, OP_L2I, OP_LADD, OP_LALOAD, OP_LAND, OP_LASTORE, OP_LCMP, OP_LCONST_0, OP_LCONST_1, OP_LDC, OP_LDC_W, OP_LDC2_W, OP_LDIV, OP_LLOAD, OP_LLOAD_0, OP_LLOAD_1, OP_LLOAD_2, OP_LLOAD_3, OP_LMUL, OP_LNEG, OP_LOOKUPSWITCH, OP_LOR, OP_LREM, OP_LRETURN, OP_LSHL, OP_LSHR, OP_LSTORE, OP_LSTORE_0, OP_LSTORE_1, OP_LSTORE_2, OP_LSTORE_3, OP_LSUB, OP_LUSHR, OP_LXOR, OP_MONITORENTER, OP_MONITOREXIT, OP_MULTIANEWARRAY, OP_NEW, OP_NEWARRAY, OP_NOP, OP_POP, OP_POP2, OP_PUTFIELD, OP_PUTSTATIC, OP_RET, OP_RETURN, OP_SALOAD, OP_SASTORE, OP_SIPUSH, OP_SWAP, OP_TABLESWITCH, OP_WIDE, opcode
-
-
Constructor Summary
Constructors Constructor Description TableSwitchInstruction()
Creates an uninitialized TableSwitchInstruction.TableSwitchInstruction(byte opcode, int defaultOffset, int lowCase, int highCase, int[] jumpOffsets)
Creates a new TableSwitchInstruction with the given arguments.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, InstructionVisitor instructionVisitor)
Accepts the given visitor.TableSwitchInstruction
copy(TableSwitchInstruction tableSwitchInstruction)
Copies the given instruction into this instruction.boolean
equals(java.lang.Object o)
int
hashCode()
int
length(int offset)
Returns the length in bytes of the instruction.protected void
readInfo(byte[] code, int offset)
Reads the data following the instruction opcode.Instruction
shrink()
Shrinks this instruction to its shortest possible form.protected void
writeInfo(byte[] code, int offset)
Writes data following the instruction opcode.-
Methods inherited from class proguard.classfile.instruction.SwitchInstruction
copy, toString, toString
-
Methods inherited from class proguard.classfile.instruction.Instruction
actualOpcode, canonicalOpcode, getName, isCategory2, isWide, mayInstanceThrowExceptions, mayThrowExceptions, readByte, readInt, readShort, readSignedByte, readSignedShort, readSignedValue, readValue, stackEntryIndexBefore, stackPopCount, stackPushCount, toString, write, write, writeByte, writeInt, writeShort, writeSignedByte, writeSignedShort, writeSignedValue, writeValue
-
-
-
-
Constructor Detail
-
TableSwitchInstruction
public TableSwitchInstruction()
Creates an uninitialized TableSwitchInstruction.
-
TableSwitchInstruction
public TableSwitchInstruction(byte opcode, int defaultOffset, int lowCase, int highCase, int[] jumpOffsets)
Creates a new TableSwitchInstruction with the given arguments. All offsets are relative to this instruction's offset.
-
-
Method Detail
-
copy
public TableSwitchInstruction copy(TableSwitchInstruction tableSwitchInstruction)
Copies the given instruction into this instruction.- Parameters:
tableSwitchInstruction
- the instruction to be copied.- Returns:
- this instruction.
-
shrink
public Instruction shrink()
Description copied from class:Instruction
Shrinks this instruction to its shortest possible form.- Specified by:
shrink
in classInstruction
- Returns:
- this instruction.
-
readInfo
protected void readInfo(byte[] code, int offset)
Description copied from class:Instruction
Reads the data following the instruction opcode.- Specified by:
readInfo
in classInstruction
-
writeInfo
protected void writeInfo(byte[] code, int offset)
Description copied from class:Instruction
Writes data following the instruction opcode.- Specified by:
writeInfo
in classInstruction
-
length
public int length(int offset)
Description copied from class:Instruction
Returns the length in bytes of the instruction.- Specified by:
length
in classInstruction
-
accept
public void accept(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, InstructionVisitor instructionVisitor)
Description copied from class:Instruction
Accepts the given visitor.- Specified by:
accept
in classInstruction
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classSwitchInstruction
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classSwitchInstruction
-
-