Class SSAVar

java.lang.Object
jadx.core.dex.instructions.args.SSAVar
All Implemented Interfaces:
Comparable<SSAVar>

public class SSAVar extends Object implements Comparable<SSAVar>
  • Field Details

    • LOG

      private static final org.slf4j.Logger LOG
    • SSA_VAR_COMPARATOR

      private static final Comparator<SSAVar> SSA_VAR_COMPARATOR
    • regNum

      private final int regNum
    • version

      private final int version
    • assign

      private RegisterArg assign
    • useList

      private final List<RegisterArg> useList
    • usedInPhi

      private List<PhiInsn> usedInPhi
    • typeInfo

      private final TypeInfo typeInfo
    • codeVar

      @Nullable("Set in InitCodeVariables pass") private @Nullable("Set in InitCodeVariables pass") CodeVar codeVar
  • Constructor Details

    • SSAVar

      public SSAVar(int regNum, int v, @NotNull @NotNull RegisterArg assign)
  • Method Details

    • getRegNum

      public int getRegNum()
    • getVersion

      public int getVersion()
    • getAssign

      @NotNull public @NotNull RegisterArg getAssign()
    • getAssignInsn

      @Nullable public @Nullable InsnNode getAssignInsn()
    • setAssign

      public void setAssign(@NotNull @NotNull RegisterArg assign)
    • getUseList

      public List<RegisterArg> getUseList()
    • getUseCount

      public int getUseCount()
    • getImmutableType

      @Nullable public @Nullable ArgType getImmutableType()
    • isTypeImmutable

      public boolean isTypeImmutable()
    • markAsImmutable

      public void markAsImmutable(ArgType type)
    • setType

      public void setType(ArgType type)
    • forceSetType

      public void forceSetType(ArgType type)
    • updateType

      private void updateType(ArgType type)
    • use

      public void use(RegisterArg arg)
    • removeUse

      public void removeUse(RegisterArg arg)
    • addUsedInPhi

      public void addUsedInPhi(PhiInsn phiInsn)
    • removeUsedInPhi

      public void removeUsedInPhi(PhiInsn phiInsn)
    • updateUsedInPhiList

      public void updateUsedInPhiList()
    • getOnlyOneUseInPhi

      @Nullable public @Nullable PhiInsn getOnlyOneUseInPhi()
    • getUsedInPhi

      public List<PhiInsn> getUsedInPhi()
    • getPhiList

      public List<PhiInsn> getPhiList()
      Concat assign PHI insn and usedInPhi
    • isAssignInPhi

      public boolean isAssignInPhi()
    • isUsedInPhi

      public boolean isUsedInPhi()
    • setName

      public void setName(String name)
    • getName

      public String getName()
    • getTypeInfo

      public TypeInfo getTypeInfo()
    • getCodeVar

      @NotNull public @NotNull CodeVar getCodeVar()
    • setCodeVar

      public void setCodeVar(@NotNull @NotNull CodeVar codeVar)
    • resetTypeAndCodeVar

      public void resetTypeAndCodeVar()
    • isCodeVarSet

      public boolean isCodeVarSet()
    • getDetailedVarInfo

      public String getDetailedVarInfo(MethodNode mth)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • compareTo

      public int compareTo(@NotNull @NotNull SSAVar o)
      Specified by:
      compareTo in interface Comparable<SSAVar>
    • toShortString

      public String toShortString()
    • toString

      public String toString()
      Overrides:
      toString in class Object