Class DexInsnData

java.lang.Object
jadx.plugins.input.dex.insns.DexInsnData
All Implemented Interfaces:
InsnData

public class DexInsnData extends Object implements InsnData
  • Field Details

    • codeData

      private final DexCodeReader codeData
    • externalReader

      private final SectionReader externalReader
    • secondExtReader

      private final SectionReader secondExtReader
    • insnInfo

      private DexInsnInfo insnInfo
    • decoded

      private boolean decoded
    • opcodeUnit

      private int opcodeUnit
    • length

      private int length
    • insnStart

      private int insnStart
    • offset

      private int offset
    • argsReg

      private int[] argsReg
    • regsCount

      private int regsCount
    • literal

      private long literal
    • target

      private int target
    • index

      private int index
    • payload

      @Nullable private @Nullable ICustomPayload payload
  • Constructor Details

  • Method Details

    • decode

      public void decode()
      Specified by:
      decode in interface InsnData
    • getOffset

      public int getOffset()
      Specified by:
      getOffset in interface InsnData
    • getFileOffset

      public int getFileOffset()
      Specified by:
      getFileOffset in interface InsnData
    • getOpcode

      public Opcode getOpcode()
      Specified by:
      getOpcode in interface InsnData
    • getOpcodeMnemonic

      public String getOpcodeMnemonic()
      Specified by:
      getOpcodeMnemonic in interface InsnData
    • getByteCode

      public byte[] getByteCode()
      Specified by:
      getByteCode in interface InsnData
    • getRawOpcodeUnit

      public int getRawOpcodeUnit()
      Specified by:
      getRawOpcodeUnit in interface InsnData
    • getRegsCount

      public int getRegsCount()
      Specified by:
      getRegsCount in interface InsnData
    • getReg

      public int getReg(int argNum)
      Specified by:
      getReg in interface InsnData
    • getResultReg

      public int getResultReg()
      Description copied from interface: InsnData
      Workaround to set result reg without additional move-result insn
      Specified by:
      getResultReg in interface InsnData
      Returns:
      result reg number or -1 if not needed
    • getLiteral

      public long getLiteral()
      Specified by:
      getLiteral in interface InsnData
    • getTarget

      public int getTarget()
      Specified by:
      getTarget in interface InsnData
    • getIndex

      public int getIndex()
      Specified by:
      getIndex in interface InsnData
    • getIndexType

      public InsnIndexType getIndexType()
      Specified by:
      getIndexType in interface InsnData
    • getIndexAsString

      public String getIndexAsString()
      Specified by:
      getIndexAsString in interface InsnData
    • getIndexAsType

      public String getIndexAsType()
      Specified by:
      getIndexAsType in interface InsnData
    • getIndexAsField

      public IFieldRef getIndexAsField()
      Specified by:
      getIndexAsField in interface InsnData
    • getIndexAsMethod

      public IMethodRef getIndexAsMethod()
      Specified by:
      getIndexAsMethod in interface InsnData
    • getIndexAsCallSite

      public ICallSite getIndexAsCallSite()
      Specified by:
      getIndexAsCallSite in interface InsnData
    • getIndexAsProto

      public IMethodProto getIndexAsProto(int protoIndex)
      Currently, protoIndex is either being stored at index or target, index for const-method-type, target for invoke-polymorphic(/range)
      Specified by:
      getIndexAsProto in interface InsnData
    • getIndexAsMethodHandle

      public IMethodHandle getIndexAsMethodHandle()
      Specified by:
      getIndexAsMethodHandle in interface InsnData
    • getPayload

      @Nullable public @Nullable ICustomPayload getPayload()
      Specified by:
      getPayload in interface InsnData
    • getArgsReg

      public int[] getArgsReg()
    • setArgsReg

      public void setArgsReg(int[] argsReg)
    • setRegsCount

      public void setRegsCount(int regsCount)
    • getLength

      public int getLength()
    • setLength

      public void setLength(int length)
    • setInsnStart

      public void setInsnStart(int start)
    • setLiteral

      public void setLiteral(long literal)
    • setTarget

      public void setTarget(int target)
    • setIndex

      public void setIndex(int index)
    • isDecoded

      public boolean isDecoded()
    • setDecoded

      public void setDecoded(boolean decoded)
    • setOffset

      public void setOffset(int offset)
    • getInsnInfo

      public DexInsnInfo getInsnInfo()
    • setInsnInfo

      public void setInsnInfo(DexInsnInfo insnInfo)
    • getCodeData

      public DexCodeReader getCodeData()
    • getOpcodeUnit

      public int getOpcodeUnit()
    • setOpcodeUnit

      public void setOpcodeUnit(int opcodeUnit)
    • setPayload

      public void setPayload(ICustomPayload payload)
    • toString

      public String toString()
      Overrides:
      toString in class Object