Class Op03Rewriters
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.Op03Rewriters
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
classifyAnonymousBlockGotos
(List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive) static void
classifyGotos
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
cloneCodeFromLoop
(List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments) static void
collapseAssignmentsIntoConditionals
(List<Op03SimpleStatement> op03SimpleParseNodes, Options options, ClassFileVersion classFileVersion) static void
combineTryCatchBlocks
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
static void
commentMonitors
(List<Op03SimpleStatement> op03SimpleParseNodes) static boolean
condenseConditionals
(List<Op03SimpleStatement> op03SimpleParseNodes) static boolean
condenseConditionals2
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
condenseConstruction
(DCCommonState dcCommonState, Method method, List<Op03SimpleStatement> op03SimpleParseNodes, AnonymousClassUsage anonymousClassUsage) static void
condenseLValueChain1
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
condenseLValueChain2
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
condenseStaticInstances
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
eclipseLoopPass
(List<Op03SimpleStatement> op03SimpleParseNodes) static List<Op03SimpleStatement>
eliminateCatchTemporaries
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
extendTryBlocks
(DCCommonState dcCommonState, List<Op03SimpleStatement> op03SimpleParseNodes) static void
extractAssertionJumps
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
static void
extractExceptionMiddle
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
identifyCatchBlocks
(List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory) static void
labelAnonymousBlocks
(List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory) static void
moveJumpsIntoDo
(VariableFactory vf, List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments) static void
narrowAssignmentTypes
(Method method, List<Op03SimpleStatement> statements) static void
nopIsolatedStackValues
(List<Op03SimpleStatement> op03SimpleParseNodes) static boolean
normalizeDupAssigns
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
optimiseForTypes
(List<Op03SimpleStatement> statements) static void
propagateToReturn2
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
pushPreChangeBack
(List<Op03SimpleStatement> op03SimpleParseNodes) static List<Op03SimpleStatement>
pushThroughGoto
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
rejoinBlocks
(List<Op03SimpleStatement> op03SimpleParseNodes) static List<Op03SimpleStatement>
removeDeadConditionals
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
removePointlessExpressionStatements
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
removePointlessJumps
(List<Op03SimpleStatement> statements) static List<Op03SimpleStatement>
removeRedundantTries
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
removeSynchronizedCatchBlocks
(Options options, List<Op03SimpleStatement> op03SimpleParseNodes) static List<Op03SimpleStatement>
removeUselessNops
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
replacePrePostChangeAssignments
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
replaceReturningIfs
(List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive) static void
replaceStackVarsWithLocals
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
rewriteBadCompares
(VariableFactory vf, List<Op03SimpleStatement> op03SimpleParseNodes) static void
rewriteBreakStatements
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
rewriteDoWhileTruePredAsWhile
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
rewriteNegativeJumps
(List<Op03SimpleStatement> statements, boolean requireChainedConditional) static void
rewriteTryBackJumps
(List<Op03SimpleStatement> op03SimpleParseNodes) static void
rewriteWhilesAsFors
(Options options, List<Op03SimpleStatement> op03SimpleParseNodes) static void
rewriteWith
(List<Op03SimpleStatement> in, ExpressionRewriter expressionRewriter) static void
simplifyConditionals
(List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive, Method method)
-
Constructor Details
-
Op03Rewriters
public Op03Rewriters()
-
-
Method Details
-
rewriteWith
-
simplifyConditionals
public static void simplifyConditionals(List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive, Method method) -
rewriteNegativeJumps
public static void rewriteNegativeJumps(List<Op03SimpleStatement> statements, boolean requireChainedConditional) -
replaceReturningIfs
public static void replaceReturningIfs(List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive) -
propagateToReturn2
-
collapseAssignmentsIntoConditionals
public static void collapseAssignmentsIntoConditionals(List<Op03SimpleStatement> op03SimpleParseNodes, Options options, ClassFileVersion classFileVersion) -
extendTryBlocks
public static void extendTryBlocks(DCCommonState dcCommonState, List<Op03SimpleStatement> op03SimpleParseNodes) -
combineTryCatchEnds
-
extractExceptionJumps
-
rewriteTryBackJumps
-
rejoinBlocks
-
condenseConditionals
-
condenseConditionals2
-
normalizeDupAssigns
-
optimiseForTypes
-
rewriteDoWhileTruePredAsWhile
-
rewriteWhilesAsFors
public static void rewriteWhilesAsFors(Options options, List<Op03SimpleStatement> op03SimpleParseNodes) -
removeSynchronizedCatchBlocks
public static void removeSynchronizedCatchBlocks(Options options, List<Op03SimpleStatement> op03SimpleParseNodes) -
rewriteBreakStatements
-
classifyGotos
-
classifyAnonymousBlockGotos
public static void classifyAnonymousBlockGotos(List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive) -
labelAnonymousBlocks
public static void labelAnonymousBlocks(List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory) -
removePointlessJumps
-
eclipseLoopPass
-
removeUselessNops
public static List<Op03SimpleStatement> removeUselessNops(List<Op03SimpleStatement> op03SimpleParseNodes) -
extractAssertionJumps
-
replaceStackVarsWithLocals
-
narrowAssignmentTypes
-
eliminateCatchTemporaries
public static List<Op03SimpleStatement> eliminateCatchTemporaries(List<Op03SimpleStatement> op03SimpleParseNodes) -
identifyCatchBlocks
public static void identifyCatchBlocks(List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory) -
combineTryCatchBlocks
-
removeRedundantTries
public static List<Op03SimpleStatement> removeRedundantTries(List<Op03SimpleStatement> op03SimpleParseNodes) -
commentMonitors
-
condenseLValueChain1
-
condenseLValueChain2
-
pushPreChangeBack
-
replacePrePostChangeAssignments
-
pushThroughGoto
public static List<Op03SimpleStatement> pushThroughGoto(List<Op03SimpleStatement> op03SimpleParseNodes) -
extractExceptionMiddle
-
removePointlessExpressionStatements
public static void removePointlessExpressionStatements(List<Op03SimpleStatement> op03SimpleParseNodes) -
condenseConstruction
public static void condenseConstruction(DCCommonState dcCommonState, Method method, List<Op03SimpleStatement> op03SimpleParseNodes, AnonymousClassUsage anonymousClassUsage) -
nopIsolatedStackValues
-
rewriteBadCompares
public static void rewriteBadCompares(VariableFactory vf, List<Op03SimpleStatement> op03SimpleParseNodes) -
cloneCodeFromLoop
public static void cloneCodeFromLoop(List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments) -
moveJumpsIntoDo
public static void moveJumpsIntoDo(VariableFactory vf, List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments) -
removeDeadConditionals
public static List<Op03SimpleStatement> removeDeadConditionals(List<Op03SimpleStatement> op03SimpleParseNodes) -
condenseStaticInstances
-