Uses of Class
jadx.core.dex.nodes.InsnNode
Packages that use InsnNode
Package
Description
-
Uses of InsnNode in jadx.api.metadata.annotations
Methods in jadx.api.metadata.annotations with parameters of type InsnNodeModifier and TypeMethodDescriptionstatic voidInsnCodeOffset.attach(ICodeWriter code, InsnNode insn) static @Nullable InsnCodeOffset -
Uses of InsnNode in jadx.core.codegen
Methods in jadx.core.codegen with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate voidMethodGen.addCatchComment(ICodeWriter code, InsnNode insn, boolean raw) static voidMethodGen.addFallbackInsns(ICodeWriter code, MethodNode mth, InsnNode[] insnArr, MethodGen.FallbackOption option) private voidClassGen.addInsnBody(InsnGen insnGen, ICodeWriter code, InsnNode insn) voidInsnGen.assignVar(ICodeWriter code, InsnNode insn) private booleanMethodGen.dumpInsn(ICodeWriter code, InsnGen insnGen, MethodGen.FallbackOption option, int startIndent, @Nullable InsnNode prevInsn, InsnNode insn) private voidInsnGen.fallbackOnlyInsn(InsnNode insn) private static booleanMethodGen.isCommentEscapeNeeded(InsnNode insn, MethodGen.FallbackOption option) voidInsnGen.makeInsn(InsnNode insn, ICodeWriter code) protected voidInsnGen.makeInsn(InsnNode insn, ICodeWriter code, InsnGen.Flags flag) private voidInsnGen.makeInsnBody(ICodeWriter code, InsnNode insn, Set<InsnGen.Flags> state) private static booleanprivate voidInsnGen.oneArgInsn(ICodeWriter code, InsnNode insn, Set<InsnGen.Flags> state, char op) private voidSimpleModeHelper.processTargetInsn(BlockNode block, InsnNode lastInsn, @Nullable BlockNode next) -
Uses of InsnNode in jadx.core.dex.attributes
Fields in jadx.core.dex.attributes declared as InsnNodeMethods in jadx.core.dex.attributes that return InsnNodeConstructors in jadx.core.dex.attributes with parameters of type InsnNode -
Uses of InsnNode in jadx.core.dex.attributes.nodes
Fields in jadx.core.dex.attributes.nodes declared as InsnNodeModifier and TypeFieldDescriptionprivate final InsnNodeEdgeInsnAttr.insnprivate final InsnNodeMethodInlineAttr.insnprivate final InsnNodeForceReturnAttr.returnInsnMethods in jadx.core.dex.attributes.nodes that return InsnNodeModifier and TypeMethodDescriptionEdgeInsnAttr.getInsn()MethodInlineAttr.getInsn()ForceReturnAttr.getReturnInsn()Methods in jadx.core.dex.attributes.nodes with parameters of type InsnNodeModifier and TypeMethodDescriptionstatic voidEdgeInsnAttr.addEdgeInsn(BlockNode start, BlockNode end, InsnNode insn) static voidEdgeInsnAttr.addEdgeInsn(Edge edge, InsnNode insn) static MethodInlineAttrMethodInlineAttr.markForInline(MethodNode mth, InsnNode replaceInsn) Constructors in jadx.core.dex.attributes.nodes with parameters of type InsnNodeModifierConstructorDescriptionprivateEdgeInsnAttr(BlockNode start, BlockNode end, InsnNode insn) ForceReturnAttr(InsnNode retInsn) privateMethodInlineAttr(InsnNode insn, int[] argsRegNums) -
Uses of InsnNode in jadx.core.dex.instructions
Subclasses of InsnNode in jadx.core.dex.instructionsModifier and TypeClassDescriptionclassclassfinal classfinal classfinal classfinal classclassclassclassclassclassclassInformation for raw invoke-custom instruction.
Output will be formatted as polymorphic call with equivalent semantic Contains two parts: - resolve: treated as additional invoke insn (uses only constant args) - invoke: call of resolved method (base for this invoke)
SeeCustomRawCallclass for build detailsclassclassclassfinal classclassclassclassFields in jadx.core.dex.instructions declared as InsnNodeMethods in jadx.core.dex.instructions that return InsnNodeModifier and TypeMethodDescriptionprivate InsnNodeprivate InsnNodeprivate InsnNodeprivate InsnNodeprivate InsnNodeprivate InsnNodestatic InsnNodeInvokeCustomBuilder.build(MethodNode mth, InsnData insn, boolean isRange) private InsnNodeprivate InsnNodeArithNode.copy()ConstClassNode.copy()ConstStringNode.copy()FillArrayData.copy()FillArrayInsn.copy()FilledNewArrayNode.copy()GotoNode.copy()IfNode.copy()InvokeCustomNode.copy()InvokeCustomRawNode.copy()InvokeNode.copy()InvokePolymorphicNode.copy()NewArrayNode.copy()PhiInsn.copy()SwitchInsn.copy()protected InsnNodeprivate InsnNodeInsnDecoder.filledNewArray(InsnData insn, boolean isRange) InvokeCustomNode.getCallInsn()private InsnNodeInsnDecoder.insn(InsnType type, RegisterArg res) private InsnNodeInsnDecoder.insn(InsnType type, RegisterArg res, InsnArg arg) private InsnNodeInsnDecoder.invoke(InsnData insn, InvokeType type, boolean isRange) private InsnNodeInsnDecoder.invokeCustom(InsnData insn, boolean isRange) private InsnNodeInsnDecoder.invokePolymorphic(InsnData insn, boolean isRange) private InsnNodeInsnDecoder.invokeSpecial(InsnData insn) private InsnNodeInsnDecoder.makeNewArray(InsnData insn) private InsnNodeprivate InsnNodeInsnNode[]InsnDecoder.process(ICodeReader codeReader) Methods in jadx.core.dex.instructions with parameters of type InsnNodeModifier and TypeMethodDescriptionbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanvoidInvokeCustomNode.setCallInsn(InsnNode callInsn) -
Uses of InsnNode in jadx.core.dex.instructions.args
Fields in jadx.core.dex.instructions.args declared as InsnNodeModifier and TypeFieldDescriptionprotected @Nullable("Null for method arguments") InsnNodeInsnArg.parentInsnprivate final InsnNodeInsnWrapArg.wrappedInsnMethods in jadx.core.dex.instructions.args that return InsnNodeModifier and TypeMethodDescription@Nullable InsnNodeRegisterArg.getAssignInsn()@Nullable InsnNodeSSAVar.getAssignInsn()@Nullable InsnNodeInsnArg.getParentInsn()InsnWrapArg.getWrapInsn()InsnArg.unwrap()InsnWrapArg.unWrapWithCopy()Methods in jadx.core.dex.instructions.args with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate static intInsnArg.getArgIndex(InsnNode parent, InsnArg arg) voidInsnArg.setParentInsn(@Nullable InsnNode parentInsn) voidInsnWrapArg.setParentInsn(InsnNode parentInsn) private static InsnWrapArgstatic InsnArgstatic @NotNull InsnArgInsnArg.wrapInsnIntoArg(InsnNode insn) @Nullable("if wrap failed") InsnArgInsnArg.wrapInstruction(MethodNode mth, InsnNode insn) @Nullable("if wrap failed") InsnArgInsnArg.wrapInstruction(MethodNode mth, InsnNode insn, boolean unbind) Constructors in jadx.core.dex.instructions.args with parameters of type InsnNodeModifierConstructorDescription(package private)InsnWrapArg(@NotNull InsnNode insn) UseInsnArg.wrapInsnIntoArg(InsnNode)instead this constructor -
Uses of InsnNode in jadx.core.dex.instructions.invokedynamic
Methods in jadx.core.dex.instructions.invokedynamic that return InsnNodeModifier and TypeMethodDescriptionstatic InsnNodeCustomRawCall.build(MethodNode mth, InsnData insn, boolean isRange, List<EncodedValue> values) static InsnNodeCustomStringConcat.buildStringConcat(InsnData insn, boolean isRange, List<EncodedValue> values) Methods in jadx.core.dex.instructions.invokedynamic with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate static voidCustomStringConcat.processRecipe(String recipe, InsnNode concat, List<EncodedValue> values, InsnData insn) -
Uses of InsnNode in jadx.core.dex.instructions.java
Subclasses of InsnNode in jadx.core.dex.instructions.javaMethods in jadx.core.dex.instructions.java that return InsnNode -
Uses of InsnNode in jadx.core.dex.instructions.mods
Subclasses of InsnNode in jadx.core.dex.instructions.modsMethods in jadx.core.dex.instructions.mods that return InsnNodeMethods in jadx.core.dex.instructions.mods with parameters of type InsnNodeModifier and TypeMethodDescriptionbooleanbooleanMethod parameters in jadx.core.dex.instructions.mods with type arguments of type InsnNode -
Uses of InsnNode in jadx.core.dex.nodes
Fields in jadx.core.dex.nodes declared as InsnNodeModifier and TypeFieldDescriptionprivate static final InsnNode[]MethodNode.EMPTY_INSN_ARRAYprivate @Nullable InsnNode[]MethodNode.instructionsFields in jadx.core.dex.nodes with type parameters of type InsnNodeMethods in jadx.core.dex.nodes with type parameters of type InsnNodeModifier and TypeMethodDescriptionprotected final <T extends InsnNode>
TInsnNode.copyCommonParams(T copy) <T extends InsnNode>
TInsnNode.copyWithoutResult()Seecopy()Methods in jadx.core.dex.nodes that return InsnNodeModifier and TypeMethodDescriptionInsnNode.copy()Make copy of InsnNode object.InsnNode.copy(RegisterArg newReturnArg) Seecopy()InsnNode.copyWithNewSsaVar(MethodNode mth) Seecopy()InsnNode.copyWithoutSsa()InsnNode[]MethodNode.getInstructions()static InsnNodeMethods in jadx.core.dex.nodes that return types with arguments of type InsnNodeModifier and TypeMethodDescriptionBlockNode.getInstructions()IBlock.getInstructions()InsnContainer.getInstructions()Methods in jadx.core.dex.nodes with parameters of type InsnNodeModifier and TypeMethodDescriptionvoidInsnNode.copyAttributesFrom(InsnNode attrNode) voidInsnNode.inheritMetadata(InsnNode sourceInsn) booleanInsnNode.isDeepEquals(InsnNode other) 'Hard' equals, compare all argumentsboolean'Soft' equals, don't compare arguments, only instruction specific parameters.Method parameters in jadx.core.dex.nodes with type arguments of type InsnNodeModifier and TypeMethodDescriptionvoidInsnNode.visitInsns(Consumer<InsnNode> visitor) Visit this instruction and all inner (wrapped) instructions<R> RInsnNode.visitInsns(Function<InsnNode, R> visitor) Visit this instruction and all inner (wrapped) instructions To terminate visiting return non-null valueConstructors in jadx.core.dex.nodes with parameters of type InsnNodeConstructor parameters in jadx.core.dex.nodes with type arguments of type InsnNode -
Uses of InsnNode in jadx.core.dex.regions
Fields in jadx.core.dex.regions declared as InsnNodeFields in jadx.core.dex.regions with type parameters of type InsnNodeMethods in jadx.core.dex.regions that return InsnNodeMethods in jadx.core.dex.regions that return types with arguments of type InsnNodeConstructors in jadx.core.dex.regions with parameters of type InsnNode -
Uses of InsnNode in jadx.core.dex.regions.conditions
Fields in jadx.core.dex.regions.conditions with type parameters of type InsnNodeMethods in jadx.core.dex.regions.conditions that return InsnNodeMethods in jadx.core.dex.regions.conditions that return types with arguments of type InsnNodeMethod parameters in jadx.core.dex.regions.conditions with type arguments of type InsnNodeModifier and TypeMethodDescriptionvoidIfInfo.addInsnsForForcedInline(List<InsnNode> insns) voidIfCondition.visitInsns(Consumer<InsnNode> visitor) Constructor parameters in jadx.core.dex.regions.conditions with type arguments of type InsnNodeModifierConstructorDescriptionprivateIfInfo(MethodNode mth, IfCondition condition, BlockNode thenBlock, BlockNode elseBlock, BlockSet mergedBlocks, Set<BlockNode> skipBlocks, List<InsnNode> forceInlineInsns) -
Uses of InsnNode in jadx.core.dex.regions.loops
Fields in jadx.core.dex.regions.loops declared as InsnNodeModifier and TypeFieldDescriptionprivate final InsnNodeForLoop.incrInsnprivate final InsnNodeForLoop.initInsnprivate final InsnNodeForEachLoop.iterableArgInsnprivate final InsnNodeForEachLoop.varArgInsnMethods in jadx.core.dex.regions.loops that return InsnNodeConstructors in jadx.core.dex.regions.loops with parameters of type InsnNode -
Uses of InsnNode in jadx.core.dex.visitors
Fields in jadx.core.dex.visitors declared as InsnNodeFields in jadx.core.dex.visitors with type parameters of type InsnNodeMethods in jadx.core.dex.visitors that return InsnNodeModifier and TypeMethodDescriptionprivate InsnNodeDeboxingVisitor.checkForReplace(InvokeNode insnNode) private static InsnNodeSimplifyVisitor.convertInvoke(MethodNode mth, InvokeNode insn) Simplify chains of calls to StringBuilder#append() plus constructor of StringBuilder.private static InsnNodeSimplifyVisitor.convertStringBuilderChain(MethodNode mth, InvokeNode toStrInsn, List<InsnNode> chain) private static @Nullable InsnNodeModVisitor.getFirstUseSkipMove(RegisterArg arg) Return first usage instruction for arg.private static @Nullable InsnNodeProcessInstructionsVisitor.getInsnAtOffset(InsnNode[] insnByOffset, int offset) private static InsnNodeAttachCommentsVisitor.getInsnByOffset(MethodNode mth, int offset) private static InsnNodeAnonymousClassVisitor.getParentInsnSkipMove(RegisterArg arg) private static InsnNodeprivate static @Nullable InsnNodeModVisitor.isCastDuplicate(IndexInsnNode castInsn) private static InsnNodeModVisitor.makeFilledArrayInsn(MethodNode mth, NewArrayNode newArrayNode, FillArrayInsn insn) private static InsnNodeSimplifyVisitor.processCast(MethodNode mth, IndexInsnNode castInsn, @Nullable InsnNode parentInsn) private static InsnNodeConstructorVisitor.removeAssignChain(MethodNode mth, InsnNode insn, InsnRemover remover, InsnType insnType) Remove instructions on 'move' chain until instruction with type 'insnType'private @Nullable InsnNodeEnumVisitor.searchFieldPutInsn(EnumVisitor.EnumData data, FieldNode enumFieldNode) private static InsnNodeSimplifyVisitor.simplifyArith(ArithNode arith) private InsnNodeSimplifyVisitor.simplifyInsn(MethodNode mth, InsnNode insn, @Nullable InsnNode parentInsn) private InsnNodeSimplifyVisitor.simplifyStringConstructor(MethodNode mth, ConstructorInsn insn) Methods in jadx.core.dex.visitors that return types with arguments of type InsnNodeModifier and TypeMethodDescriptionSimplifyVisitor.collectUseChain(MethodNode mth, InvokeNode insn, RegisterArg instanceArg) SimplifyVisitor.flattenInsnChainUntil(InsnNode insn, InsnType insnType) AdjustForIfMergeVisitor.getMovableInstructions(BlockNode blk, BlockNode succ) Methods in jadx.core.dex.visitors with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate static voidConstInlineVisitor.addExplicitCast(InsnNode insn, LiteralArg arg) private static @Nullable MethodInlineAttrMarkMethodsForInline.addInlineAttr(MethodNode mth, InsnNode insn, boolean isCopy) private static voidProcessInstructionsVisitor.addJump(MethodNode mth, InsnNode[] insnByOffset, int offset, int target) private static voidFixSwitchOverEnum.addToEnumMap(RootNode root, EnumMapAttr mapAttr, InsnNode aputInsn) private static voidAttachTryCatchVisitor.attachCatchAttr(CatchAttr catchAttr, InsnNode insn) private static voidProcessInstructionsVisitor.attachSwitchData(InsnNode[] insnByOffset, int offset, SwitchInsn sw) private static booleanConstInlineVisitor.canUseNull(InsnNode insn, RegisterArg useArg) private @Nullable ConstructorInsnEnumVisitor.castConstructorInsn(InsnNode coCandidate) private static @Nullable FixSwitchOverEnum.EnumMapInfoFixSwitchOverEnum.checkEnumMapAccess(RootNode root, InsnNode checkInsn) private static voidConstInlineVisitor.checkInsn(MethodNode mth, InsnNode insn, List<InsnNode> toRemove) private voidMethodThrowsVisitor.checkInsn(MethodNode mth, InsnNode insn, Set<String> excludedExceptions, boolean skipExceptions) private static booleanClassModifier.checkSyntheticWrapper(MethodNode mth, InsnNode insn) private static ArithNodeSimplifyVisitor.convertFieldArith(MethodNode mth, InsnNode insn) Convert field arith operation to arith instruction (IPUT (ARITH (IGET, lit)) -> ARITH ((IGET))= lit)) private static List<ExceptionHandler> AttachTryCatchVisitor.convertToHandlers(MethodNode mth, ICatch catchBlock, InsnNode[] insnByOffset) private static @Nullable ExceptionHandlerAttachTryCatchVisitor.createHandler(MethodNode mth, InsnNode[] insnByOffset, int handlerOffset, @Nullable ClassInfo type) private static booleanMoveInlineVisitor.deleteMove(MethodNode mth, InsnNode move) private List<EnumClassAttr.EnumField> EnumVisitor.extractEnumFieldsFromFilledArray(EnumVisitor.EnumData enumData, InsnNode arrFillInsn) private @Nullable List<EnumClassAttr.EnumField> EnumVisitor.extractEnumFieldsFromInsn(EnumVisitor.EnumData enumData, InsnNode wrappedInsn) private static voidModVisitor.fixPrimitiveCast(MethodNode mth, BlockNode block, int i, InsnNode insn) private static booleanMarkMethodsForInline.fixVisibilityOfInlineCode(MethodNode mth, InsnNode insn) SimplifyVisitor.flattenInsnChainUntil(InsnNode insn, InsnType insnType) private static booleanConstInlineVisitor.forbidNullArgInline(InsnNode insn, RegisterArg useArg) private static InsnArgSimplifyVisitor.getArgFromAppend(InsnNode chainInsn) private ConstructorInsnEnumVisitor.getConstructorInsn(InsnNode insn) private static @Nullable FieldInfoShadowFieldVisitor.getFieldInfo(InsnNode insn) private static @Nullable InsnNodeProcessInstructionsVisitor.getInsnAtOffset(InsnNode[] insnByOffset, int offset) private static ArgTypeMethodInvokeVisitor.getInsnCompilerType(InsnArg arg, InsnNode insn) static intProcessInstructionsVisitor.getNextInsnOffset(InsnNode[] insnByOffset, int offset) private static voidProcessInstructionsVisitor.initJumps(MethodNode mth, InsnNode[] insnByOffset) private static voidAttachTryCatchVisitor.initTryCatches(MethodNode mth, InsnNode[] insnByOffset, List<ITry> tries) private static voidModVisitor.inlineCMPInsns(MethodNode mth, BlockNode block, int i, InsnNode insn, InsnRemover remover) Inline CMP instructions into 'if' to help conditions mergingprivate static InsnNodeprivate static booleanSimplifyVisitor.isArithWideUpCast(@Nullable InsnNode parentInsn, ArgType argType, ArgType castToType) Keep cast to wide types in arith instructions, because arguments type determine instruction used in result bytecode.private booleanInlineMethods.isAssignNeeded(InsnNode inlineInsn, InvokeNode parentInsn, MethodNode callMthNode) private static booleanModVisitor.isResultArgNotUsed(InsnNode insn) private static booleanMarkMethodsForInline.isSyntheticAccessPattern(MethodNode mth, InsnNode firstInsn, InsnNode retInsn) private StringApplyVariableNames.makeNameFromInsn(SSAVar ssaVar, InsnNode insn) private static voidAttachTryCatchVisitor.markTryBounds(InsnNode[] insnByOffset, ITry aTry, CatchAttr catchAttr) private static voidProcessInstructionsVisitor.mergeMoveResult(InsnNode[] insnByOffset, int offset, InsnNode insn, ArgType resType) private static voidClassModifier.modifySyntheticMethod(ClassNode cls, MethodNode mth, InsnNode insn, List<RegisterArg> args) Remove synthetic constructor and redirect calls to existing constructorprivate static InsnNodeSimplifyVisitor.processCast(MethodNode mth, IndexInsnNode castInsn, @Nullable InsnNode parentInsn) private @Nullable EnumClassAttr.EnumFieldEnumVisitor.processEnumFieldByField(EnumVisitor.EnumData data, InsnNode sgetInsn) private EnumClassAttr.EnumFieldEnumVisitor.processEnumFieldByWrappedInsn(EnumVisitor.EnumData data, InsnNode wrappedInsn) private static voidShadowFieldVisitor.processInsn(MethodNode mth, InsnNode insn, Map<String, ShadowFieldVisitor.FieldFixInfo> fixInfoMap) private static booleanMoveInlineVisitor.processMove(MethodNode mth, InsnNode move) private static voidModVisitor.processMoveException(MethodNode mth, BlockNode block, InsnNode insn, InsnRemover remover) private static booleanFixSwitchOverEnum.processRemappedEnumSwitch(MethodNode mth, SwitchInsn insn, InsnNode wrapInsn, InsnArg arg) private static InsnNodeConstructorVisitor.removeAssignChain(MethodNode mth, InsnNode insn, InsnRemover remover, InsnType insnType) Remove instructions on 'move' chain until instruction with type 'insnType'private static voidProcessInstructionsVisitor.removeInsn(InsnNode[] insnByOffset, InsnNode insn) private static voidPrepareForCodeGen.removeParenthesis(InsnNode insn) Remove parenthesis for wrapped insn in arith '+' or '-' ('(a + b) +c' => 'a + b + c')private static booleanConstInlineVisitor.replaceArg(MethodNode mth, RegisterArg arg, InsnArg constArg, InsnNode constInsn) private static booleanConstInlineVisitor.replaceConst(MethodNode mth, InsnNode constInsn, InsnArg constArg) private static voidModVisitor.replaceConst(MethodNode mth, ClassNode parentClass, BlockNode block, int i, InsnNode insn) private booleanInlineMethods.replaceRegs(MethodNode mth, MethodNode callMth, MethodInlineAttr mia, InvokeNode insn, InsnNode inlCopy) private static booleanSimplifyVisitor.shadowedByOuterCast(RootNode root, ArgType castType, @Nullable InsnNode parentInsn) private voidSimplifyVisitor.simplifyArgs(MethodNode mth, InsnNode insn) private InsnNodeSimplifyVisitor.simplifyInsn(MethodNode mth, InsnNode insn, @Nullable InsnNode parentInsn) private static voidMarkMethodsForInline.unbindSsaVars(InsnNode insn) private voidInlineMethods.updateUsageInfo(MethodNode mth, MethodNode inlinedMth, InsnNode insn) Method parameters in jadx.core.dex.visitors with type arguments of type InsnNodeModifier and TypeMethodDescriptionprivate static voidConstInlineVisitor.checkInsn(MethodNode mth, InsnNode insn, List<InsnNode> toRemove) private static InsnNodeSimplifyVisitor.convertStringBuilderChain(MethodNode mth, InvokeNode toStrInsn, List<InsnNode> chain) private voidAdjustForIfMergeVisitor.doMove(MethodNode mth, BlockNode target, BlockNode bottomIf, List<InsnNode> movableInstructions) AnonymousClassVisitor.getArgsToFieldsMapping(MethodNode mth, List<InsnNode> usedInsns) private static booleanReplaceNewArray.processInsn(MethodNode mth, List<InsnNode> instructions, int i, InsnRemover remover) private static booleanReplaceNewArray.processNewArray(MethodNode mth, NewArrayNode newArrayInsn, List<InsnNode> instructions, InsnRemover remover) private static voidSimplifyVisitor.removeStringBuilderInsns(MethodNode mth, InvokeNode toStrInsn, List<InsnNode> chain) Remove and unbind all instructions with StringBuilderprivate static booleanReplaceNewArray.verifyPutInsns(RegisterArg arrReg, List<InsnNode> insnList, SortedMap<Long, InsnNode> arrPuts) private static booleanReplaceNewArray.verifyPutInsns(RegisterArg arrReg, List<InsnNode> insnList, SortedMap<Long, InsnNode> arrPuts) -
Uses of InsnNode in jadx.core.dex.visitors.blocks
Methods in jadx.core.dex.visitors.blocks that return InsnNodeModifier and TypeMethodDescriptionprivate static InsnNodeBlockProcessor.getInsnsFromEnd(BlockNode block, int number) Methods in jadx.core.dex.visitors.blocks that return types with arguments of type InsnNodeModifier and TypeMethodDescriptionBlockProcessor.getLastInsns(BlockNode blockNode, int sameInsnCount) Methods in jadx.core.dex.visitors.blocks with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate static booleanprivate static booleanBlockProcessor.isInsnsEquals(InsnNode insn, InsnNode otherInsn) private static booleanprivate static booleanBlockSplitter.isSplitByJump(InsnNode prevInsn, InsnNode currentInsn) Method parameters in jadx.core.dex.visitors.blocks with type arguments of type InsnNodeModifier and TypeMethodDescriptionprivate static voidBlockProcessor.insertAtStart(BlockNode block, List<InsnNode> insns) -
Uses of InsnNode in jadx.core.dex.visitors.debuginfo
Methods in jadx.core.dex.visitors.debuginfo with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate voidDebugInfoAttachVisitor.attachDebugInfo(MethodNode mth, List<ILocalVar> localVars, InsnNode[] insnArr) private voidDebugInfoAttachVisitor.attachSourceLines(MethodNode mth, Map<Integer, Integer> lineMapping, InsnNode[] insnArr) private voidDebugInfoAttachVisitor.setMethodSourceLine(MethodNode mth, InsnNode[] insnArr) Set method source line from first instruction -
Uses of InsnNode in jadx.core.dex.visitors.finaly
Methods in jadx.core.dex.visitors.finaly that return types with arguments of type InsnNodeModifier and TypeMethodDescriptionMarkFinallyVisitor.findCommonInsns(MethodNode mth, MarkFinallyVisitor.TryExtractInfo tryInfo) MarkFinallyVisitor.findCommonInsns(MethodNode mth, MarkFinallyVisitor.TryExtractInfo tryInfo) Methods in jadx.core.dex.visitors.finaly with parameters of type InsnNodeModifier and TypeMethodDescriptionvoidCentralityState.addAllowableOutputs(InsnNode allowableOutputInsn) Adds all inputs register arguments from an instruction as allowable output arguments.private static voidMarkFinallyVisitor.copyCodeVars(InsnNode fromInsn, InsnNode toInsn) booleanCentralityState.hasAllowableInputs(InsnNode insn) booleanCentralityState.hasAllowableOutput(InsnNode insn) abstract booleanboolean -
Uses of InsnNode in jadx.core.dex.visitors.finaly.traverser.state
Fields in jadx.core.dex.visitors.finaly.traverser.state with type parameters of type InsnNodeMethods in jadx.core.dex.visitors.finaly.traverser.state that return types with arguments of type InsnNodeModifier and TypeMethodDescriptionTraverserBlockInfo.getInsnsSlice()TraverserActivePathState.getMatchedInsns()Constructor parameters in jadx.core.dex.visitors.finaly.traverser.state with type arguments of type InsnNodeModifierConstructorDescriptionprivateTraverserActivePathState(Set<Pair<InsnNode>> matchedInsns, TraverserActivePathState.BlockCompletionMonitorMap finallyCompletionMonitor, TraverserActivePathState.BlockCompletionMonitorMap candidateCompletionMonitor, TraverserGlobalCommonState commonGlobalState, GlobalTraverserSourceState finallyGlobalState, GlobalTraverserSourceState candidateGlobalState) Creates a new instance of a traversal active path. -
Uses of InsnNode in jadx.core.dex.visitors.finaly.traverser.visitors
Methods in jadx.core.dex.visitors.finaly.traverser.visitors with parameters of type InsnNodeModifier and TypeMethodDescriptionstatic booleanImplicitInsnBlockTraverserVisitor.isInstructionImplicit(InsnNode node) static booleanPathEndBlockTraverserVisitor.isInstructionPathEnd(InsnNode insn) -
Uses of InsnNode in jadx.core.dex.visitors.kotlin
Methods in jadx.core.dex.visitors.kotlin with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate @Nullable StringProcessKotlinInternals.getConstString(MethodNode mth, InsnNode insn, int arg) private voidProcessKotlinInternals.processInvoke(MethodNode mth, InsnNode insn) -
Uses of InsnNode in jadx.core.dex.visitors.regions
Fields in jadx.core.dex.visitors.regions declared as InsnNodeModifier and TypeFieldDescriptionprivate InsnNodeSwitchOverStringVisitor.SwitchData.hashcodeInvokeInsnMethods in jadx.core.dex.visitors.regions that return InsnNodeMethods in jadx.core.dex.visitors.regions with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate static LoopTypeLoopRegionVisitor.checkArrayForEach(MethodNode mth, LoopRegion loopRegion, InsnNode initInsn, InsnNode incrInsn, IfCondition condition) private static booleanLoopRegionVisitor.checkInvoke(InsnNode insn, String declClsFullName, String mthId) Check if instruction is a interface invoke with corresponding parameters.private static booleanTernaryMod.checkLineStats(InsnNode t, InsnNode e) Return 'true' if there are several args with same source linesprivate static booleanTernaryMod.containsTernary(InsnNode insn) private static @Nullable IntegerSwitchOverStringVisitor.extractConstNumber(SwitchOverStringVisitor.SwitchData switchData, @Nullable InsnNode numInsn) private static booleanSwitchOverStringVisitor.isIfStringEqualsInsn(InsnNode ifInsn) private static voidTernaryMod.replaceWithTernary(MethodNode mth, IfRegion ifRegion, BlockNode block, InsnNode insn) voidSwitchOverStringVisitor.SwitchData.setHashcodeInvokeInsn(InsnNode hashcodeInvokeInsn) private static booleanTernaryMod.verifyLineHints(MethodNode mth, InsnNode thenInsn, InsnNode elseInsn) -
Uses of InsnNode in jadx.core.dex.visitors.regions.maker
Methods in jadx.core.dex.visitors.regions.maker with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate voidLoopRegionMaker.addBreakLabel(BlockNode blockOnLoop, BlockNode exit, InsnNode breakInsn) private static booleanSynchronizedRegionMaker.canRemoveSyncBlock(MethodNode mth, InsnNode synchInsn) (package private) BlockNodeSynchronizedRegionMaker.process(IRegion curRegion, BlockNode block, InsnNode insn, RegionStack stack) Method parameters in jadx.core.dex.visitors.regions.maker with type arguments of type InsnNodeModifier and TypeMethodDescriptionprivate voidRegionMaker.addOneInsnOfType(List<InsnNode> insns, List<EdgeInsnAttr> edgeInsns, InsnType insnType) private static booleanIfRegionMaker.checkInsnsInline(BlockNode block, BlockNode next, List<InsnNode> forceInlineInsns) Check that all instructions can be inlined -
Uses of InsnNode in jadx.core.dex.visitors.regions.variables
Methods in jadx.core.dex.visitors.regions.variables with parameters of type InsnNodeModifier and TypeMethodDescription(package private) voidCollectUsageRegionVisitor.processInsn(InsnNode insn, UsePlace usePlace) -
Uses of InsnNode in jadx.core.dex.visitors.shrink
Fields in jadx.core.dex.visitors.shrink declared as InsnNodeModifier and TypeFieldDescriptionprivate final InsnNodeArgsInfo.insnprivate final InsnNodeWrapInfo.insnMethods in jadx.core.dex.visitors.shrink that return InsnNodeModifier and TypeMethodDescriptionArgsInfo.getInsn()(package private) InsnNodeWrapInfo.getInsn()Methods in jadx.core.dex.visitors.shrink with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate static voidArgsInfo.addArgs(InsnNode insn, List<RegisterArg> args) private static booleanCodeShrinkVisitor.assignInline(MethodNode mth, RegisterArg arg, InsnNode assignInsn, BlockNode assignBlock) private static booleanCodeShrinkVisitor.canMoveBetweenBlocks(MethodNode mth, InsnNode assignInsn, BlockNode assignBlock, BlockNode useBlock, InsnNode useInsn) private static booleanCodeShrinkVisitor.checkLambdaInline(RegisterArg arg, InsnNode assignInsn) Forbid inline lambda into invoke as an instance arg, i.e.static List<RegisterArg> private static booleanCodeShrinkVisitor.inline(MethodNode mth, RegisterArg arg, InsnNode insn, BlockNode block) private static booleanCodeShrinkVisitor.searchArgWithName(InsnNode assignInsn, String varName) (package private) static booleanArgsInfo.usedArgAssign(InsnNode insn, BitSet args) Constructors in jadx.core.dex.visitors.shrink with parameters of type InsnNode -
Uses of InsnNode in jadx.core.dex.visitors.ssa
Methods in jadx.core.dex.visitors.ssa with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate static booleanSSATransform.shouldSkipInsnResult(MethodNode mth, InsnNode insn, ExcHandlerAttr handlerAttr) -
Uses of InsnNode in jadx.core.dex.visitors.typeinference
Fields in jadx.core.dex.visitors.typeinference declared as InsnNodeMethods in jadx.core.dex.visitors.typeinference that return InsnNodeModifier and TypeMethodDescriptionprivate InsnNodeFixTypesVisitor.notBooleanToInt(ArithNode insn, RegisterArg boundArg) Methods in jadx.core.dex.visitors.typeinference with parameters of type InsnNodeModifier and TypeMethodDescriptionprivate TypeUpdateResultTypeUpdate.allSameListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) All args must have same typesprivate TypeUpdateResultTypeUpdate.arithListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) private TypeUpdateResultTypeUpdate.arrayGetListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) private TypeUpdateResultTypeUpdate.arrayPutListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) private TypeUpdateResultTypeUpdate.checkCastListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) AbstractTypeConstraint.collectRelatedVars(InsnNode insn, InsnArg arg) private TypeUpdateResultTypeUpdate.ifListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) private TypeUpdateResultTypeUpdate.invokeListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) private static booleanprivate @Nullable ITypeConstraintTypeSearch.makeMoveConstraint(InsnNode insn, RegisterArg arg) private ITypeConstraintTypeSearch.makePhiConstraint(InsnNode insn, RegisterArg arg) private TypeUpdateResultTypeUpdate.moveListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) private TypeUpdateResultTypeUpdate.sameFirstArgListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) private TypeUpdateResultTypeUpdate.suggestAllSameListener(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, ArgType candidateType) Try to set candidate type to all args, don't fail on reject@Nullable TypeUpdateResultITypeListener.update(TypeUpdateInfo updateInfo, InsnNode insn, InsnArg arg, @NotNull ArgType candidateType) Listener function - triggered on type updateConstructors in jadx.core.dex.visitors.typeinference with parameters of type InsnNode -
Uses of InsnNode in jadx.core.utils
Fields in jadx.core.utils declared as InsnNodeFields in jadx.core.utils with type parameters of type InsnNodeMethods in jadx.core.utils that return InsnNodeModifier and TypeMethodDescriptionprivate static InsnNodeEncodedValueUtils.buildMethodHandle(RootNode root, IMethodHandle methodHandle) Build `MethodHandles.lookup().find{type}(methodCls, methodName, methodType)`static @Nullable InsnNodeInsnUtils.checkInsnType(@Nullable InsnNode insn, InsnType insnType) InsnList.get(int index) static @Nullable InsnNodeBlockUtils.getFirstInsn(@Nullable IBlock block) static @Nullable InsnNodeRegionUtils.getFirstInsn(IContainer container) BlockInsnPair.getInsn()static @Nullable InsnNodeBlockUtils.getLastInsn(@Nullable IBlock block) static InsnNodeRegionUtils.getLastInsn(IContainer container) static InsnNodeBlockUtils.getLastInsnWithType(IBlock block, InsnType expectedType) static @Nullable InsnNodeBlockUtils.getOnlyOneInsnFromMth(MethodNode mth) Return insn if it is only one instruction in this method.static @Nullable InsnNodeInsnUtils.getWrappedInsn(InsnArg arg) private static InsnNodeInsnUtils.recursiveInsnCheck(InsnNode insn, InsnType insnType, Predicate<InsnNode> test) static @Nullable InsnNodeInsnUtils.searchInsn(MethodNode mth, InsnType insnType, Predicate<InsnNode> test) Search instruction of specific type and condition in method.static InsnNodeBlockUtils.searchInsnParent(MethodNode mth, InsnNode insn) static @Nullable InsnNodeInsnUtils.searchSingleReturnInsn(MethodNode mth, Predicate<InsnNode> test) Methods in jadx.core.utils that return types with arguments of type InsnNodeModifier and TypeMethodDescriptionBlockUtils.collectAllInsns(List<BlockNode> blocks) RegionUtils.collectInsns(MethodNode mth, IContainer container) BlockUtils.collectInsnsWithLimit(List<BlockNode> blocks, int limit) Return limited number of instructions from method.InsnList.iterator()Methods in jadx.core.utils with parameters of type InsnNodeModifier and TypeMethodDescriptionvoidInsnRemover.addAndUnbind(InsnNode insn) voidInsnRemover.addWithoutUnbind(InsnNode insn) static booleanBlockUtils.blockContains(BlockNode block, InsnNode insn) Check if instruction contains in block (use == for comparison, not equals)private static voidDebugChecks.checkInsn(MethodNode mth, BlockNode block, InsnNode insn) static @Nullable InsnNodeInsnUtils.checkInsnType(@Nullable InsnNode insn, InsnType insnType) private static voidDebugChecks.checkVar(MethodNode mth, InsnNode insn, RegisterArg reg) booleanstatic booleanstatic booleanstatic booleanstatic booleanInsnUtils.containsVar(InsnNode insn, RegisterArg arg) static booleanInsnUtils.dontGenerateIfNotUsed(InsnNode insn) private static InsnArgBlockUtils.foundWrappedInsn(InsnNode container, InsnNode insn) private static InsnArgBlockUtils.foundWrappedInsnInCondition(IfCondition cond, InsnNode insn) static @Nullable BlockNodeBlockUtils.getBlockByInsn(MethodNode mth, @Nullable InsnNode insn) static @Nullable BlockNodeBlockUtils.getBlockByInsn(MethodNode mth, @Nullable InsnNode insn, List<BlockNode> blocks) private static BlockNodeBlockUtils.getBlockByWrappedInsn(MethodNode mth, InsnNode insn) static @Nullable CatchAttrBlockUtils.getCatchAttrForInsn(MethodNode mth, InsnNode insn) static @Nullable ObjectInsnUtils.getConstValueByInsn(RootNode root, InsnNode insn) Return constant value from insn or null if not constant.intstatic intstatic intstatic intBlockUtils.getInsnIndexInBlock(BlockNode block, InsnNode insn) static @Nullable InsnArgInsnUtils.getSingleArg(InsnNode insn) static booleanBlockUtils.insertAfterInsn(BlockNode block, InsnNode insn, InsnNode newInsn) static booleanBlockUtils.insertBeforeInsn(BlockNode block, InsnNode insn, InsnNode newInsn) private static booleanDebugChecks.insnMissing(MethodNode mth, InsnNode insn) static booleanBlockUtils.isFirstInsn(MethodNode mth, InsnNode insn) private static booleanBlockUtils.isInsnDeepEquals(InsnNode first, InsnNode second) static booleanInsnUtils.isInsnType(@Nullable InsnNode insn, InsnType insnType) private static InsnNodeInsnUtils.recursiveInsnCheck(InsnNode insn, InsnType insnType, Predicate<InsnNode> test) static voidvoidstatic voidstatic voidInsnRemover.remove(MethodNode mth, @Nullable InsnNode insn) static voidInsnRemover.remove(MethodNode mth, BlockNode block, InsnNode insn) static booleanInsnRemover.removeWithoutUnbind(MethodNode mth, BlockNode block, InsnNode insn) static voidBlockUtils.replaceInsn(MethodNode mth, BlockNode block, int i, InsnNode insn) Replace insn by index i in block, for proper copy attributes, assume attributes are not overlapstatic booleanBlockUtils.replaceInsn(MethodNode mth, BlockNode block, InsnNode oldInsn, InsnNode newInsn) static booleanBlockUtils.replaceInsn(MethodNode mth, InsnNode oldInsn, InsnNode newInsn) static voidInsnUtils.replaceInsnsInInsn(MethodNode mth, InsnNode insn, Function<InsnNode, InsnNode> replaceFunction) static InsnNodeBlockUtils.searchInsnParent(MethodNode mth, InsnNode insn) static InsnArgBlockUtils.searchWrappedInsnParent(MethodNode mth, InsnNode insn) static voidInsnRemover.unbindAllArgs(@Nullable MethodNode mth, InsnNode insn) static voidInsnRemover.unbindInsn(@Nullable MethodNode mth, InsnNode insn) static voidInsnRemover.unbindResult(@Nullable MethodNode mth, InsnNode insn) Method parameters in jadx.core.utils with type arguments of type InsnNodeModifier and TypeMethodDescriptionstatic booleanBlockUtils.checkFirstInsn(IBlock block, Predicate<InsnNode> predicate) static booleanstatic booleanstatic intstatic intprivate static InsnNodeInsnUtils.recursiveInsnCheck(InsnNode insn, InsnType insnType, Predicate<InsnNode> test) static voidprivate static voidstatic voidInsnRemover.removeAllAndUnbind(MethodNode mth, BlockNode block, List<InsnNode> insns) static voidInsnRemover.removeAllAndUnbind(MethodNode mth, IContainer container, List<InsnNode> insns) static voidInsnRemover.removeAllAndUnbind(MethodNode mth, List<InsnNode> insns) static voidInsnRemover.removeAllWithoutUnbind(BlockNode block, List<InsnNode> insns) static voidInsnUtils.replaceInsns(MethodNode mth, Function<InsnNode, InsnNode> replaceFunction) static voidInsnUtils.replaceInsns(MethodNode mth, Function<InsnNode, InsnNode> replaceFunction) static voidInsnUtils.replaceInsnsInInsn(MethodNode mth, InsnNode insn, Function<InsnNode, InsnNode> replaceFunction) static voidInsnUtils.replaceInsnsInInsn(MethodNode mth, InsnNode insn, Function<InsnNode, InsnNode> replaceFunction) static @Nullable InsnNodeInsnUtils.searchInsn(MethodNode mth, InsnType insnType, Predicate<InsnNode> test) Search instruction of specific type and condition in method.static @Nullable InsnNodeInsnUtils.searchSingleReturnInsn(MethodNode mth, Predicate<InsnNode> test) static voidInsnRemover.unbindInsns(@Nullable MethodNode mth, List<InsnNode> insns) Constructors in jadx.core.utils with parameters of type InsnNodeConstructor parameters in jadx.core.utils with type arguments of type InsnNode