Package jadx.core.dex.visitors.blocks
Class FixMultiEntryLoops
java.lang.Object
jadx.core.dex.visitors.blocks.FixMultiEntryLoops
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidcolorDFS(MethodNode mth, FixMultiEntryLoops.BlockColor[] colors, BlockNode block) private static voidprivate static voiddupPath(MethodNode mth, BlockNode start, BlockNode center, BlockNode end) Duplicate 'center' block on path from 'start' to 'end'private static booleanfixLoop(MethodNode mth, SpecialEdgeAttr backEdge, List<SpecialEdgeAttr> crossEdges) private static booleanisEndBlockEntry(MethodNode mth, SpecialEdgeAttr backEdge, List<SpecialEdgeAttr> crossEdges) private static booleanisHeaderSuccessorEntry(MethodNode mth, SpecialEdgeAttr backEdge, List<SpecialEdgeAttr> crossEdges) private static booleanstatic booleanprocess(MethodNode mth)
-
Constructor Details
-
FixMultiEntryLoops
public FixMultiEntryLoops()
-
-
Method Details
-
process
-
fixLoop
private static boolean fixLoop(MethodNode mth, SpecialEdgeAttr backEdge, List<SpecialEdgeAttr> crossEdges) -
isHeaderSuccessorEntry
private static boolean isHeaderSuccessorEntry(MethodNode mth, SpecialEdgeAttr backEdge, List<SpecialEdgeAttr> crossEdges) -
isEndBlockEntry
private static boolean isEndBlockEntry(MethodNode mth, SpecialEdgeAttr backEdge, List<SpecialEdgeAttr> crossEdges) -
dupPath
Duplicate 'center' block on path from 'start' to 'end' -
isSingleEntryLoop
-
detectSpecialEdges
-
colorDFS
private static void colorDFS(MethodNode mth, FixMultiEntryLoops.BlockColor[] colors, BlockNode block)
-