Package jadx.core.dex.instructions.args
Class InsnArg
- java.lang.Object
-
- jadx.core.dex.attributes.AttrNode
-
- jadx.core.dex.instructions.args.Typed
-
- jadx.core.dex.instructions.args.InsnArg
-
- All Implemented Interfaces:
IAttributeNode
- Direct Known Subclasses:
InsnWrapArg,LiteralArg,NamedArg,RegisterArg
public abstract class InsnArg extends Typed
Instruction argument. Can be: register, literal, instruction or name
-
-
Field Summary
Fields Modifier and Type Field Description protected @Nullable("Null for method arguments") InsnNodeparentInsn
-
Constructor Summary
Constructors Constructor Description InsnArg()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T extends InsnArg>
TcopyCommonParams(T copy)InsnArgduplicate()@Nullable InsnNodegetParentInsn()booleanisAnyThis()Return true for 'this' from other classes (often occur in anonymous classes)booleanisConst()booleanisFalse()booleanisInsnWrap()booleanisLiteral()booleanisNamed()booleanisRegister()booleanisSameCodeVar(RegisterArg arg)booleanisSameConst(InsnArg other)booleanisSameVar(RegisterArg arg)booleanisThis()booleanisTrue()booleanisUseVar(RegisterArg arg)booleanisZeroConst()booleanisZeroLiteral()static LiteralArglit(long literal, ArgType type)static LiteralArglit(jadx.api.plugins.input.insns.InsnData insn, ArgType type)static RegisterArgreg(int regNum, ArgType type)static RegisterArgreg(int regNum, ArgType type, boolean typeImmutable)static RegisterArgreg(jadx.api.plugins.input.insns.InsnData insn, int argNum, ArgType type)voidsetParentInsn(@Nullable InsnNode parentInsn)java.lang.StringtoShortString()static RegisterArgtypeImmutableIfKnownReg(jadx.api.plugins.input.insns.InsnData insn, int argNum, ArgType type)static RegisterArgtypeImmutableReg(int regNum, ArgType type)static RegisterArgtypeImmutableReg(jadx.api.plugins.input.insns.InsnData insn, int argNum, ArgType type)InsnNodeunwrap()static InsnArgwrapArg(InsnNode insn)PreferwrapInsnIntoArg(InsnNode).static @NotNull InsnArgwrapInsnIntoArg(InsnNode insn)@Nullable("if wrap failed") InsnArgwrapInstruction(MethodNode mth, InsnNode insn)@Nullable("if wrap failed") InsnArgwrapInstruction(MethodNode mth, InsnNode insn, boolean unbind)-
Methods inherited from class jadx.core.dex.instructions.args.Typed
getType, isTypeImmutable, setType
-
Methods inherited from class jadx.core.dex.attributes.AttrNode
add, addAttr, addAttr, addAttr, addAttrs, clearAttributes, contains, contains, copyAttributeFrom, copyAttributesFrom, get, getAll, getAnnotation, getAttributesString, getAttributesStringsList, isAttrStorageEmpty, remove, remove, removeAttr, rewriteAttributeFrom, unloadAttributes
-
-
-
-
Field Detail
-
parentInsn
@Nullable("Null for method arguments") protected @Nullable("Null for method arguments") InsnNode parentInsn
-
-
Method Detail
-
reg
public static RegisterArg reg(int regNum, ArgType type)
-
reg
public static RegisterArg reg(jadx.api.plugins.input.insns.InsnData insn, int argNum, ArgType type)
-
typeImmutableIfKnownReg
public static RegisterArg typeImmutableIfKnownReg(jadx.api.plugins.input.insns.InsnData insn, int argNum, ArgType type)
-
typeImmutableReg
public static RegisterArg typeImmutableReg(jadx.api.plugins.input.insns.InsnData insn, int argNum, ArgType type)
-
typeImmutableReg
public static RegisterArg typeImmutableReg(int regNum, ArgType type)
-
reg
public static RegisterArg reg(int regNum, ArgType type, boolean typeImmutable)
-
lit
public static LiteralArg lit(long literal, ArgType type)
-
lit
public static LiteralArg lit(jadx.api.plugins.input.insns.InsnData insn, ArgType type)
-
isRegister
public boolean isRegister()
-
isLiteral
public boolean isLiteral()
-
isInsnWrap
public boolean isInsnWrap()
-
isNamed
public boolean isNamed()
-
getParentInsn
@Nullable public @Nullable InsnNode getParentInsn()
-
setParentInsn
public void setParentInsn(@Nullable @Nullable InsnNode parentInsn)
-
wrapInstruction
@Nullable("if wrap failed") public @Nullable("if wrap failed") InsnArg wrapInstruction(MethodNode mth, InsnNode insn)
-
wrapInstruction
@Nullable("if wrap failed") public @Nullable("if wrap failed") InsnArg wrapInstruction(MethodNode mth, InsnNode insn, boolean unbind)
-
wrapArg
public static InsnArg wrapArg(InsnNode insn)
PreferwrapInsnIntoArg(InsnNode).This method don't support MOVE and CONST insns!
-
isZeroLiteral
public boolean isZeroLiteral()
-
isZeroConst
public boolean isZeroConst()
-
isFalse
public boolean isFalse()
-
isTrue
public boolean isTrue()
-
isThis
public boolean isThis()
-
isAnyThis
public boolean isAnyThis()
Return true for 'this' from other classes (often occur in anonymous classes)
-
unwrap
public InsnNode unwrap()
-
isConst
public boolean isConst()
-
isSameConst
public boolean isSameConst(InsnArg other)
-
isSameVar
public boolean isSameVar(RegisterArg arg)
-
isSameCodeVar
public boolean isSameCodeVar(RegisterArg arg)
-
isUseVar
public boolean isUseVar(RegisterArg arg)
-
copyCommonParams
protected final <T extends InsnArg> T copyCommonParams(T copy)
-
duplicate
public InsnArg duplicate()
-
toShortString
public java.lang.String toShortString()
-
-