public class Op03Blocks
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
Op03Blocks.Block3 |
Constructor and Description |
---|
Op03Blocks() |
Modifier and Type | Method and Description |
---|---|
private static boolean |
addCatchEndDependencies(java.util.List<Op03Blocks.Block3> blocks) |
private static java.util.List<Op03Blocks.Block3> |
addTryEndDependencies(java.util.List<Op03Blocks.Block3> blocks) |
private static void |
apply0TargetBlockHeuristic(java.util.List<Op03Blocks.Block3> blocks) |
private static void |
applyKnownBlocksHeuristic(java.util.List<Op03Blocks.Block3> blocks,
java.util.Map<BlockIdentifier,BlockIdentifier> tryBlockAliases) |
private static java.util.List<Op03Blocks.Block3> |
buildBasicBlocks(java.util.List<Op03SimpleStatement> statements) |
private static boolean |
canCombineBlockSets(Op03Blocks.Block3 from,
Op03Blocks.Block3 to) |
private static java.util.List<Op03Blocks.Block3> |
combineNeighbouringBlocks(java.util.List<Op03Blocks.Block3> blocks) |
private static java.util.List<Op03Blocks.Block3> |
combineNeighbouringBlocksPass1(java.util.List<Op03Blocks.Block3> blocks) |
private static java.util.List<Op03Blocks.Block3> |
combineSingleCaseBackBlock(java.util.List<Op03Blocks.Block3> blocks) |
static java.util.List<Op03SimpleStatement> |
combineTryBlocks(java.util.List<Op03SimpleStatement> statements) |
private static boolean |
detectMoves(java.util.List<Op03Blocks.Block3> blocks,
Options options) |
private static java.util.List<Op03Blocks.Block3> |
doTopSort(java.util.List<Op03Blocks.Block3> in) |
private static java.util.Map<BlockIdentifier,java.lang.Integer> |
findFirstInBlock(java.util.List<Op03SimpleStatement> statements,
java.util.Set<BlockIdentifier> mutableMissing) |
private static java.util.Map<BlockIdentifier,BlockIdentifier> |
getTryBlockAliases(java.util.List<Op03SimpleStatement> statements) |
private static java.util.List<Op03Blocks.Block3> |
invertJoinZeroTargetJumps(java.util.List<Op03Blocks.Block3> blocks) |
private static boolean |
moveSingleOutOrderBlocks(java.util.List<Op03Blocks.Block3> blocks) |
private static void |
patch(Op03Blocks.Block3 a,
Op03Blocks.Block3 b) |
private static void |
removeAliases(java.util.Set<BlockIdentifier> in,
java.util.Map<BlockIdentifier,BlockIdentifier> aliases) |
private static void |
sanitiseBlocks(java.util.List<Op03Blocks.Block3> blocks) |
private static boolean |
stripBackExceptions(java.util.List<Op03SimpleStatement> statements) |
private static void |
stripTryBlockAliases(java.util.List<Op03SimpleStatement> out,
java.util.Map<BlockIdentifier,BlockIdentifier> tryBlockAliases) |
static java.util.List<Op03SimpleStatement> |
topologicalSort(java.util.List<Op03SimpleStatement> statements,
DecompilerComments comments,
Options options) |
private static java.util.List<Op03Blocks.Block3> doTopSort(java.util.List<Op03Blocks.Block3> in)
private static void apply0TargetBlockHeuristic(java.util.List<Op03Blocks.Block3> blocks)
private static void removeAliases(java.util.Set<BlockIdentifier> in, java.util.Map<BlockIdentifier,BlockIdentifier> aliases)
private static java.util.Map<BlockIdentifier,BlockIdentifier> getTryBlockAliases(java.util.List<Op03SimpleStatement> statements)
private static void applyKnownBlocksHeuristic(java.util.List<Op03Blocks.Block3> blocks, java.util.Map<BlockIdentifier,BlockIdentifier> tryBlockAliases)
private static java.util.List<Op03Blocks.Block3> buildBasicBlocks(java.util.List<Op03SimpleStatement> statements)
private static boolean detectMoves(java.util.List<Op03Blocks.Block3> blocks, Options options)
private static void stripTryBlockAliases(java.util.List<Op03SimpleStatement> out, java.util.Map<BlockIdentifier,BlockIdentifier> tryBlockAliases)
private static java.util.Map<BlockIdentifier,java.lang.Integer> findFirstInBlock(java.util.List<Op03SimpleStatement> statements, java.util.Set<BlockIdentifier> mutableMissing)
public static java.util.List<Op03SimpleStatement> combineTryBlocks(java.util.List<Op03SimpleStatement> statements)
private static boolean canCombineBlockSets(Op03Blocks.Block3 from, Op03Blocks.Block3 to)
private static void sanitiseBlocks(java.util.List<Op03Blocks.Block3> blocks)
private static java.util.List<Op03Blocks.Block3> invertJoinZeroTargetJumps(java.util.List<Op03Blocks.Block3> blocks)
private static java.util.List<Op03Blocks.Block3> combineNeighbouringBlocks(java.util.List<Op03Blocks.Block3> blocks)
private static java.util.List<Op03Blocks.Block3> combineSingleCaseBackBlock(java.util.List<Op03Blocks.Block3> blocks)
private static boolean moveSingleOutOrderBlocks(java.util.List<Op03Blocks.Block3> blocks)
private static java.util.List<Op03Blocks.Block3> combineNeighbouringBlocksPass1(java.util.List<Op03Blocks.Block3> blocks)
public static java.util.List<Op03SimpleStatement> topologicalSort(java.util.List<Op03SimpleStatement> statements, DecompilerComments comments, Options options)
private static boolean addCatchEndDependencies(java.util.List<Op03Blocks.Block3> blocks)
private static java.util.List<Op03Blocks.Block3> addTryEndDependencies(java.util.List<Op03Blocks.Block3> blocks)
private static boolean stripBackExceptions(java.util.List<Op03SimpleStatement> statements)
private static void patch(Op03Blocks.Block3 a, Op03Blocks.Block3 b)