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 voidclassifyAnonymousBlockGotos(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive)static voidclassifyGotos(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidcloneCodeFromLoop(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments)static voidcollapseAssignmentsIntoConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, Options options, ClassFileVersion classFileVersion)static voidcombineTryCatchBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidcombineTryCatchEnds(java.util.List<Op03SimpleStatement> in)static voidcommentMonitors(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static booleancondenseConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static booleancondenseConditionals2(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidcondenseConstruction(DCCommonState dcCommonState, Method method, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, AnonymousClassUsage anonymousClassUsage)static voidcondenseLValueChain1(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidcondenseLValueChain2(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidcondenseStaticInstances(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voideclipseLoopPass(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static java.util.List<Op03SimpleStatement>eliminateCatchTemporaries(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidextendTryBlocks(DCCommonState dcCommonState, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidextractAssertionJumps(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidextractExceptionJumps(java.util.List<Op03SimpleStatement> in)static voidextractExceptionMiddle(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voididentifyCatchBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory)static voidlabelAnonymousBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory)static voidmoveJumpsIntoDo(VariableFactory vf, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments)static voidnarrowAssignmentTypes(Method method, java.util.List<Op03SimpleStatement> statements)static voidnopIsolatedStackValues(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static booleannormalizeDupAssigns(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidoptimiseForTypes(java.util.List<Op03SimpleStatement> statements)static voidpropagateToReturn2(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidpushPreChangeBack(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static java.util.List<Op03SimpleStatement>pushThroughGoto(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrejoinBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrelinkInstanceConstants(JavaRefTypeInstance thisType, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, DCCommonState dcCommonState)static java.util.List<Op03SimpleStatement>removeDeadConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidremovePointlessExpressionStatements(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidremovePointlessJumps(java.util.List<Op03SimpleStatement> statements)static java.util.List<Op03SimpleStatement>removeRedundantTries(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidremoveSynchronizedCatchBlocks(Options options, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static java.util.List<Op03SimpleStatement>removeUselessNops(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidreplacePrePostChangeAssignments(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidreplaceReturningIfs(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive)static voidreplaceStackVarsWithLocals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrewriteBadCompares(VariableFactory vf, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrewriteBreakStatements(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrewriteDoWhileTruePredAsWhile(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrewriteNegativeJumps(java.util.List<Op03SimpleStatement> statements, boolean requireChainedConditional)static voidrewriteTryBackJumps(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrewriteWhilesAsFors(Options options, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)static voidrewriteWith(java.util.List<Op03SimpleStatement> in, ExpressionRewriter expressionRewriter)static voidsimplifyConditionals(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)
-
relinkInstanceConstants
public static void relinkInstanceConstants(JavaRefTypeInstance thisType, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, DCCommonState dcCommonState)
-
-