Class Op03Blocks
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.opgraph.Op03Blocks
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
addCatchEndDependencies
(List<Op03Blocks.Block3> blocks) private static List<Op03Blocks.Block3>
addTryEndDependencies
(List<Op03Blocks.Block3> blocks) private static void
private static void
applyKnownBlocksHeuristic
(List<Op03Blocks.Block3> blocks, Map<BlockIdentifier, BlockIdentifier> tryBlockAliases) private static List<Op03Blocks.Block3>
buildBasicBlocks
(List<Op03SimpleStatement> statements) private static boolean
private static List<Op03Blocks.Block3>
private static List<Op03Blocks.Block3>
private static List<Op03Blocks.Block3>
static List<Op03SimpleStatement>
combineTryBlocks
(List<Op03SimpleStatement> statements) private static boolean
detectMoves
(List<Op03Blocks.Block3> blocks, Options options) private static List<Op03Blocks.Block3>
private static Map<BlockIdentifier,
Integer> findFirstInBlock
(List<Op03SimpleStatement> statements, Set<BlockIdentifier> mutableMissing) private static Map<BlockIdentifier,
BlockIdentifier> getTryBlockAliases
(List<Op03SimpleStatement> statements) private static List<Op03Blocks.Block3>
private static boolean
private static void
private static void
removeAliases
(Set<BlockIdentifier> in, Map<BlockIdentifier, BlockIdentifier> aliases) private static void
sanitiseBlocks
(List<Op03Blocks.Block3> blocks) private static boolean
stripBackExceptions
(List<Op03SimpleStatement> statements) private static void
stripTryBlockAliases
(List<Op03SimpleStatement> out, Map<BlockIdentifier, BlockIdentifier> tryBlockAliases) static List<Op03SimpleStatement>
topologicalSort
(List<Op03SimpleStatement> statements, DecompilerComments comments, Options options)
-
Constructor Details
-
Op03Blocks
public Op03Blocks()
-
-
Method Details
-
doTopSort
-
apply0TargetBlockHeuristic
-
removeAliases
private static void removeAliases(Set<BlockIdentifier> in, Map<BlockIdentifier, BlockIdentifier> aliases) -
getTryBlockAliases
private static Map<BlockIdentifier,BlockIdentifier> getTryBlockAliases(List<Op03SimpleStatement> statements) -
applyKnownBlocksHeuristic
private static void applyKnownBlocksHeuristic(List<Op03Blocks.Block3> blocks, Map<BlockIdentifier, BlockIdentifier> tryBlockAliases) -
buildBasicBlocks
-
detectMoves
-
stripTryBlockAliases
private static void stripTryBlockAliases(List<Op03SimpleStatement> out, Map<BlockIdentifier, BlockIdentifier> tryBlockAliases) -
findFirstInBlock
private static Map<BlockIdentifier,Integer> findFirstInBlock(List<Op03SimpleStatement> statements, Set<BlockIdentifier> mutableMissing) -
combineTryBlocks
-
canCombineBlockSets
-
sanitiseBlocks
-
invertJoinZeroTargetJumps
-
combineNeighbouringBlocks
-
combineSingleCaseBackBlock
-
moveSingleOutOrderBlocks
-
combineNeighbouringBlocksPass1
private static List<Op03Blocks.Block3> combineNeighbouringBlocksPass1(List<Op03Blocks.Block3> blocks) -
topologicalSort
public static List<Op03SimpleStatement> topologicalSort(List<Op03SimpleStatement> statements, DecompilerComments comments, Options options) -
addCatchEndDependencies
-
addTryEndDependencies
-
stripBackExceptions
-
patch
-