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