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