Package proguard.classfile.editor
Class InstructionSequenceReplacer.Label
java.lang.Object
proguard.classfile.instruction.Instruction
proguard.classfile.editor.InstructionSequenceReplacer.Label
- Enclosing class:
- InstructionSequenceReplacer
This pseudo-instruction represents a label that marks an instruction offset, for use in the
context of the sequence replacer only.
-
Field Summary
FieldsFields 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, InstructionVisitor instructionVisitor) Accepts the given visitor.booleaninthashCode()intlength(int offset) Returns the length in bytes of the instruction.intoffset()Returns the offset that can then be used as a branch target in other replacement instructions.protected voidreadInfo(byte[] code, int offset) Reads the data following the instruction opcode.shrink()Shrinks this instruction to its shortest possible form.toString()voidwrite(byte[] code, int offset) Writes the Instruction at the given offset in the given code array.protected voidwriteInfo(byte[] code, int offset) Writes data following the instruction opcode.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, toString, write, writeByte, writeInt, writeShort, writeSignedByte, writeSignedShort, writeSignedValue, writeValue
-
Field Details
-
identifier
protected final int identifier
-
-
Method Details
-
offset
public int offset()Returns the offset that can then be used as a branch target in other replacement instructions. -
shrink
Description copied from class:InstructionShrinks this instruction to its shortest possible form.- Specified by:
shrinkin classInstruction- Returns:
- this instruction.
-
write
public void write(byte[] code, int offset) Description copied from class:InstructionWrites the Instruction at the given offset in the given code array.- Overrides:
writein classInstruction
-
readInfo
protected void readInfo(byte[] code, int offset) Description copied from class:InstructionReads the data following the instruction opcode.- Specified by:
readInfoin classInstruction
-
writeInfo
protected void writeInfo(byte[] code, int offset) Description copied from class:InstructionWrites data following the instruction opcode.- Specified by:
writeInfoin classInstruction
-
length
public int length(int offset) Description copied from class:InstructionReturns the length in bytes of the instruction.- Specified by:
lengthin classInstruction
-
accept
public void accept(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, InstructionVisitor instructionVisitor) Description copied from class:InstructionAccepts the given visitor.- Specified by:
acceptin classInstruction
-
toString
-
equals
- Specified by:
equalsin classInstruction
-
hashCode
public int hashCode()- Specified by:
hashCodein classInstruction
-