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 booleanaddCatchEndDependencies(List<Op03Blocks.Block3> blocks) private static List<Op03Blocks.Block3> addTryEndDependencies(List<Op03Blocks.Block3> blocks) private static voidprivate static voidapplyKnownBlocksHeuristic(List<Op03Blocks.Block3> blocks, Map<BlockIdentifier, BlockIdentifier> tryBlockAliases) private static List<Op03Blocks.Block3> buildBasicBlocks(List<Op03SimpleStatement> statements) private static booleanprivate static List<Op03Blocks.Block3> private static List<Op03Blocks.Block3> private static List<Op03Blocks.Block3> static List<Op03SimpleStatement> combineTryBlocks(List<Op03SimpleStatement> statements) private static booleandetectMoves(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 booleanprivate static voidprivate static voidremoveAliases(Set<BlockIdentifier> in, Map<BlockIdentifier, BlockIdentifier> aliases) private static voidsanitiseBlocks(List<Op03Blocks.Block3> blocks) private static booleanstripBackExceptions(List<Op03SimpleStatement> statements) private static voidstripTryBlockAliases(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
-