Uses of Class
org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement
-
-
Uses of Op03SimpleStatement in org.benf.cfr.reader.bytecode.analysis.opgraph
Fields in org.benf.cfr.reader.bytecode.analysis.opgraph declared as Op03SimpleStatement Modifier and Type Field Description private Op03SimpleStatement
Op03SimpleStatement. linearlyNext
private Op03SimpleStatement
Op03SimpleStatement. linearlyPrevious
Fields in org.benf.cfr.reader.bytecode.analysis.opgraph with type parameters of type Op03SimpleStatement Modifier and Type Field Description (package private) java.util.List<Op03SimpleStatement>
Op03Blocks.Block3. content
private java.util.List<Op03SimpleStatement>
Op03SimpleStatement.GraphVisitorCallee. reachableNodes
private java.util.List<Op03SimpleStatement>
Op03SimpleStatement. sources
private java.util.List<Op03SimpleStatement>
Op03SimpleStatement. targets
Methods in org.benf.cfr.reader.bytecode.analysis.opgraph that return Op03SimpleStatement Modifier and Type Method Description Op03SimpleStatement
Op03Blocks.Block3. getEnd()
Op03SimpleStatement
Op03SimpleStatement. getLinearlyNext()
Op03SimpleStatement
Op03SimpleStatement. getLinearlyPrevious()
Op03SimpleStatement
Op03Blocks.Block3. getStart()
Methods in org.benf.cfr.reader.bytecode.analysis.opgraph that return types with arguments of type Op03SimpleStatement Modifier and Type Method Description static java.util.List<Op03SimpleStatement>
Op03Blocks. combineTryBlocks(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
Op02WithProcessedDataAndRefs. convertToOp03List(java.util.List<Op02WithProcessedDataAndRefs> op2list, Method method, VariableFactory variableFactory, BlockIdentifierFactory blockIdentifierFactory, DCCommonState dcCommonState, DecompilerComments comments, TypeHintRecovery typeHintRecovery)
private java.util.List<Op03SimpleStatement>
Op03Blocks.Block3. getContent()
java.util.List<Op03SimpleStatement>
Op03SimpleStatement. getSources()
java.util.List<Op03SimpleStatement>
Op03SimpleStatement. getTargets()
java.util.List<Op03SimpleStatement>
Op03SimpleStatement. splitCompound()
static java.util.List<Op03SimpleStatement>
Op03Blocks. topologicalSort(java.util.List<Op03SimpleStatement> statements, DecompilerComments comments, Options options)
Methods in org.benf.cfr.reader.bytecode.analysis.opgraph with parameters of type Op03SimpleStatement Modifier and Type Method Description void
Op03SimpleStatement. addSource(Op03SimpleStatement source)
void
Op03SimpleStatement. addTarget(Op03SimpleStatement target)
void
Op03Blocks.Block3. append(Op03SimpleStatement s)
void
Op03SimpleStatement.GraphVisitorCallee. call(Op03SimpleStatement node, GraphVisitor<Op03SimpleStatement> graphVisitor)
void
Op03SimpleStatement. markBlockStatement(BlockIdentifier blockIdentifier, Op03SimpleStatement lastInBlock, Op03SimpleStatement blockEnd, java.util.List<Op03SimpleStatement> statements)
void
Op03SimpleStatement. removeGotoTarget(Op03SimpleStatement oldTarget)
private static void
Op03SimpleStatement. removePointlessSwitchDefault(Op03SimpleStatement swtch)
void
Op03SimpleStatement. removeSource(Op03SimpleStatement oldSource)
void
Op03SimpleStatement. removeTarget(Op03SimpleStatement oldTarget)
private void
Op03SimpleStatement. replaceSingleSourceWith(Op03SimpleStatement oldSource, java.util.List<Op03SimpleStatement> newSources)
void
Op03SimpleStatement. replaceSource(Op03SimpleStatement oldSource, Op03SimpleStatement newSource)
void
Op03SimpleStatement. replaceTarget(Op03SimpleStatement oldTarget, Op03SimpleStatement newTarget)
void
Op03SimpleStatement. setLinearlyNext(Op03SimpleStatement linearlyNext)
void
Op03SimpleStatement. setLinearlyPrevious(Op03SimpleStatement linearlyPrevious)
void
Op03SimpleStatement. splice(Op03SimpleStatement newSource)
Method parameters in org.benf.cfr.reader.bytecode.analysis.opgraph with type arguments of type Op03SimpleStatement Modifier and Type Method Description static void
Op03SimpleStatement. assignSSAIdentifiers(Method method, java.util.List<Op03SimpleStatement> statements)
private static java.util.List<Op03Blocks.Block3>
Op03Blocks. buildBasicBlocks(java.util.List<Op03SimpleStatement> statements)
void
Op03SimpleStatement.GraphVisitorCallee. call(Op03SimpleStatement node, GraphVisitor<Op03SimpleStatement> graphVisitor)
static java.util.List<Op03SimpleStatement>
Op03Blocks. combineTryBlocks(java.util.List<Op03SimpleStatement> statements)
static Op04StructuredStatement
Op03SimpleStatement. createInitialStructuredBlock(java.util.List<Op03SimpleStatement> statements)
private static java.util.Map<BlockIdentifier,java.lang.Integer>
Op03Blocks. findFirstInBlock(java.util.List<Op03SimpleStatement> statements, java.util.Set<BlockIdentifier> mutableMissing)
private static java.util.Map<BlockIdentifier,BlockIdentifier>
Op03Blocks. getTryBlockAliases(java.util.List<Op03SimpleStatement> statements)
void
Op03SimpleStatement. markBlockStatement(BlockIdentifier blockIdentifier, Op03SimpleStatement lastInBlock, Op03SimpleStatement blockEnd, java.util.List<Op03SimpleStatement> statements)
static void
Op03SimpleStatement. noteInterestingLifetimes(java.util.List<Op03SimpleStatement> statements)
static void
Op03SimpleStatement. removePointlessSwitchDefaults(java.util.List<Op03SimpleStatement> statements)
private void
Op03SimpleStatement. replaceSingleSourceWith(Op03SimpleStatement oldSource, java.util.List<Op03SimpleStatement> newSources)
private static boolean
Op03Blocks. stripBackExceptions(java.util.List<Op03SimpleStatement> statements)
private static void
Op03Blocks. stripTryBlockAliases(java.util.List<Op03SimpleStatement> out, java.util.Map<BlockIdentifier,BlockIdentifier> tryBlockAliases)
static java.util.List<Op03SimpleStatement>
Op03Blocks. topologicalSort(java.util.List<Op03SimpleStatement> statements, DecompilerComments comments, Options options)
Constructors in org.benf.cfr.reader.bytecode.analysis.opgraph with parameters of type Op03SimpleStatement Constructor Description Block3(Op03SimpleStatement s)
Constructor parameters in org.benf.cfr.reader.bytecode.analysis.opgraph with type arguments of type Op03SimpleStatement Constructor Description GraphVisitorCallee(java.util.List<Op03SimpleStatement> reachableNodes)
-
Uses of Op03SimpleStatement in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters
Fields in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters declared as Op03SimpleStatement Modifier and Type Field Description (package private) Op03SimpleStatement
LoopIdentifier.LoopResult. blockStart
private Op03SimpleStatement
LinearScannedBlock. first
(package private) Op03SimpleStatement
KotlinSwitchHandler.OriginalSwitchLookupInfo. ifTest
private Op03SimpleStatement
LinearScannedBlock. last
private Op03SimpleStatement
Misc.GraphVisitorBlockReachable. start
private Op03SimpleStatement
SwitchReplacer.NodeReachable. start
private Op03SimpleStatement
SwitchReplacer.NodesReachedUntil. start
(package private) Op03SimpleStatement
KotlinSwitchHandler.OriginalSwitchLookupInfo. stringMatchJump
private Op03SimpleStatement
SwitchReplacer.NodeReachable. switchStatement
Op03SimpleStatement
KotlinSwitchHandler.OriginalSwitchLookupInfo. target
private Op03SimpleStatement
SwitchReplacer.NodesReachedUntil. target
Fields in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters with type parameters of type Op03SimpleStatement Modifier and Type Field Description private java.util.Set<Op03SimpleStatement>
SwitchReplacer.NodesReachedUntil. banned
private java.util.Set<Op03SimpleStatement>
Misc.GraphVisitorBlockReachable. exits
private java.util.Set<Op03SimpleStatement>
Misc.GraphVisitorBlockReachable. found
private java.util.Set<Op03SimpleStatement>
SwitchReplacer.NodeReachable. inBlock
private java.util.Map<Op03SimpleStatement,java.lang.Integer>
Misc.GraphVisitorReachableInThese. instrToIdx
private java.util.Set<Op03SimpleStatement>
SwitchReplacer.NodeReachable. otherCases
private java.util.List<Op03SimpleStatement>
SwitchReplacer.NodeReachable. reaches
private java.util.Set<Op03SimpleStatement>
SwitchReplacer.NodesReachedUntil. reaches
Methods in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters that return Op03SimpleStatement Modifier and Type Method Description private static Op03SimpleStatement
SwitchReplacer. examineSwitchContiguity(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, boolean pullCodeIntoCase, boolean allowMalformedSwitch, DecompilerComments comments, BytecodeMeta bytecodeMeta)
private static Op03SimpleStatement
LoopIdentifier. findFirstConditional(Op03SimpleStatement start)
private static Op03SimpleStatement
WhileRewriter. findMovableAssignment(Op03SimpleStatement start, LValue lValue)
(package private) static Op03SimpleStatement
Misc. findSingleBackSource(Op03SimpleStatement start)
(package private) static Op03SimpleStatement
Misc. followNopGoto(Op03SimpleStatement in, boolean requireJustOneSource, boolean aggressive)
static Op03SimpleStatement
Misc. followNopGotoChain(Op03SimpleStatement in, boolean requireJustOneSource, boolean skipLabels)
static Op03SimpleStatement
Misc. followNopGotoChainUntil(Op03SimpleStatement in, Op03SimpleStatement until, boolean requireJustOneSource, boolean skipLabels)
(package private) static Op03SimpleStatement
LoopIdentifier. getCloseFwdJumpInto(Op03SimpleStatement start, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements, int startIdx, int lastIdx)
Op03SimpleStatement
LinearScannedBlock. getFirst()
private static Op03SimpleStatement
WhileRewriter. getForInvariant(Op03SimpleStatement start, LValue invariant, BlockIdentifier whileLoop)
Op03SimpleStatement
LinearScannedBlock. getLast()
private static Op03SimpleStatement
TryRewriter. getLastContiguousBlockStatement(BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> in, Op03SimpleStatement preBlock)
static Op03SimpleStatement
Misc. getLastInRangeByIndex(java.util.Set<Op03SimpleStatement> stms)
private Op03SimpleStatement
JumpsIntoLoopCloneRewriter. getPossLast(Op03SimpleStatement stm, BlockIdentifier ident)
private static Op03SimpleStatement
ExceptionRewriters. insertBlockPadding(java.lang.String comment, Op03SimpleStatement insertAfter, Op03SimpleStatement insertBefore, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements)
Op03SimpleStatement
Misc.GetBackJump. invoke(Op03SimpleStatement in)
private static Op03SimpleStatement
PointlessJumps. maybeMoveTarget(Op03SimpleStatement expectedRetarget, Op03SimpleStatement source, java.util.List<Op03SimpleStatement> statements)
private static Op03SimpleStatement
SwitchReplacer. moveSwitch(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, Op03SimpleStatement firstCase, int idxFirstCase, java.util.List<Op03SimpleStatement> targets)
private static Op03SimpleStatement
SwitchReplacer. replaceRawSwitch(Method method, Op03SimpleStatement swatch, java.util.List<Op03SimpleStatement> in, BlockIdentifierFactory blockIdentifierFactory, Options options)
static Op03SimpleStatement
Misc. skipComments(Op03SimpleStatement stm)
Methods in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters that return types with arguments of type Op03SimpleStatement Modifier and Type Method Description static java.util.List<Op03SimpleStatement>
RemoveDeterministicJumps. apply(Method method, java.util.List<Op03SimpleStatement> statements)
(package private) static java.util.Set<Op03SimpleStatement>
Misc. collectAllSources(java.util.Collection<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
LValuePropSimple. condenseSimpleLValues(java.util.List<Op03SimpleStatement> statementList)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyBlock(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement start, Op03SimpleStatement end, java.util.Set<Op03SimpleStatement> valid, BlockIdentifier containedIn, java.util.Set<Op03SimpleStatement> addSources, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> orig2copy)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyST(java.util.List<Op03SimpleStatement> original, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> replacements, boolean failIfMissing)
(package private) static java.util.List<Op03SimpleStatement>
ExceptionRewriters. eliminateCatchTemporaries(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. eliminateCatchTemporaries(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
KotlinSwitchHandler. extractStringSwitches(java.util.List<Op03SimpleStatement> in, BytecodeMeta bytecodeMeta)
(package private) static java.util.Set<Op03SimpleStatement>
Misc. followNopGotoBackwards(Op03SimpleStatement eventualtarget)
(package private) static java.util.Set<Op03SimpleStatement>
Misc.GraphVisitorBlockReachable. getBlockReachable(Op03SimpleStatement start, BlockIdentifier blockIdentifier)
(package private) static Pair<java.util.Set<Op03SimpleStatement>,java.util.Set<Op03SimpleStatement>>
Misc.GraphVisitorBlockReachable. getBlockReachableAndExits(Op03SimpleStatement start, BlockIdentifier blockIdentifier)
(package private) static Pair<java.util.Set<Op03SimpleStatement>,java.util.Set<Op03SimpleStatement>>
Misc.GraphVisitorBlockReachable. getBlockReachableAndExits(Op03SimpleStatement start, BlockIdentifier blockIdentifier)
private static java.util.Map<BlockIdentifier,Op03SimpleStatement>
ExceptionRewriters. getFirstByBlock(java.util.List<Op03SimpleStatement> in)
private static java.util.List<Op03SimpleStatement>
WhileRewriter. getMutations(java.util.List<Op03SimpleStatement> backSources, LValue loopVariable, BlockIdentifier whileBlockIdentifier)
private static java.util.List<Op03SimpleStatement>
ExceptionRewriters. getTries(java.util.List<Op03SimpleStatement> in)
private java.util.Set<Op03SimpleStatement>
Misc.GraphVisitorBlockReachable. privGetBlockReachable()
private Pair<java.util.Set<Op03SimpleStatement>,java.util.Set<Op03SimpleStatement>>
Misc.GraphVisitorBlockReachable. privGetBlockReachableAndExits()
private Pair<java.util.Set<Op03SimpleStatement>,java.util.Set<Op03SimpleStatement>>
Misc.GraphVisitorBlockReachable. privGetBlockReachableAndExits()
static java.util.List<Op03SimpleStatement>
Op03Rewriters. pushThroughGoto(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
PushThroughGoto. pushThroughGoto(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. removeDeadConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. removeRedundantTries(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
RedundantTries. removeRedundantTries(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
Cleaner. removeUnreachableCode(java.util.List<Op03SimpleStatement> statements, boolean checkBackJumps)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. removeUselessNops(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
UselessNops. removeUselessNops(java.util.List<Op03SimpleStatement> in)
java.util.List<Op03SimpleStatement>
DeadConditionalRemover. rewrite(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
StaticInitReturnRewriter. rewrite(Options options, Method method, java.util.List<Op03SimpleStatement> statementList)
static java.util.List<Op03SimpleStatement>
SwitchReplacer. rewriteDuff(java.util.List<Op03SimpleStatement> statements, VariableFactory vf, DecompilerComments decompilerComments, Options options)
static java.util.List<Op03SimpleStatement>
Cleaner. sortAndRenumber(java.util.List<Op03SimpleStatement> statements)
private GraphVisitor<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. visitCandidates(BlockIdentifier blockIdent, Op03SimpleStatement possLast, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> candidates)
Methods in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters with parameters of type Op03SimpleStatement Modifier and Type Method Description private static void
LValueCondense. applyLValueCondense(AssignmentSimple a1, AssignmentSimple a2, Op03SimpleStatement stm1, Op03SimpleStatement stm2)
private static void
LValueCondense. applyLValueSwap(AssignmentSimple a1, AssignmentSimple a2, Op03SimpleStatement stm1, Op03SimpleStatement stm2)
private static boolean
ConditionalCondenser. appropriateForIfAssignmentCollapse1(Op03SimpleStatement statement)
private static boolean
ConditionalCondenser. appropriateForIfAssignmentCollapse2(Op03SimpleStatement statement)
private static boolean
SwitchReplacer. blockIsContiguous(java.util.List<Op03SimpleStatement> in, Op03SimpleStatement start, java.util.Set<Op03SimpleStatement> blockContent)
private static void
SwitchReplacer. buildSwitchCases(Op03SimpleStatement swatch, java.util.List<Op03SimpleStatement> targets, BlockIdentifier switchBlockIdentifier, java.util.List<Op03SimpleStatement> in, boolean forcedOrder)
void
Misc.GraphVisitorBlockReachable. call(Op03SimpleStatement arg1, GraphVisitor<Op03SimpleStatement> arg2)
void
Misc.GraphVisitorReachableInThese. call(Op03SimpleStatement node, GraphVisitor<Op03SimpleStatement> graphVisitor)
void
SwitchReplacer.NodeReachable. call(Op03SimpleStatement arg1, GraphVisitor<Op03SimpleStatement> arg2)
void
SwitchReplacer.NodesReachedUntil. call(Op03SimpleStatement arg1, GraphVisitor<Op03SimpleStatement> arg2)
(package private) static void
SwitchUtils. checkFixNewCase(Op03SimpleStatement possCaseItem, Op03SimpleStatement possCase)
private static int
SwitchReplacer. checkPreSwitchJump(java.util.List<Op03SimpleStatement> statements, Op03SimpleStatement switchStm, int idxLastStart, int idxLastEnd)
private static void
ClassifyGotos. classifyCatchLeaveGoto(Op03SimpleStatement gotoStm, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.Map<BlockIdentifier,java.util.Set<BlockIdentifier>> catchBlockToTryBlocks, java.util.List<Op03SimpleStatement> in)
private static boolean
ClassifyGotos. classifyTryCatchLeaveGoto(Op03SimpleStatement gotoStm, java.util.Set<BlockIdentifier> blocks, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.List<Op03SimpleStatement> in)
private static boolean
ClassifyGotos. classifyTryLeaveGoto(Op03SimpleStatement gotoStm, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.List<Op03SimpleStatement> in)
private void
ConditionalCondenser. collapseAssignmentsIntoConditional(Op03SimpleStatement ifStatement)
private static void
ExceptionRewriters. combineTryCatchBlocks(Op03SimpleStatement tryStatement)
private static void
TryRewriter. combineTryCatchEnds(Op03SimpleStatement tryStatement, java.util.List<Op03SimpleStatement> in)
int
CompareByIndex. compare(Op03SimpleStatement a, Op03SimpleStatement b)
private static boolean
CondenseConditionals. condenseConditional2_type1(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> allStatements)
private static boolean
CondenseConditionals. condenseConditional2_type2(Op03SimpleStatement ifStatement)
private static boolean
CondenseConditionals. condenseConditional2_type3(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> allStatements)
private static boolean
CondenseConditionals. condenseIfs(Op03SimpleStatement if1, Op03SimpleStatement if2, Op03SimpleStatement taken1, Op03SimpleStatement taken2, Op03SimpleStatement fall2, boolean negated1)
private void
StaticInstanceCondenser. consider(Op03SimpleStatement stm)
private static boolean
ConditionalRewriter. considerAsDexIf(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> statements)
private static BlockIdentifier
LoopIdentifier. considerAsDoLoopStart(Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Map<BlockIdentifier,Op03SimpleStatement> postBlockCache)
private static void
LoopIdentifier. considerAsPathologicalLoop(Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements)
private static boolean
ConditionalRewriter. considerAsSimpleIf(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Set<Op03SimpleStatement> ignoreTheseJumps, boolean reduceSimpleScope)
private static boolean
ConditionalRewriter. considerAsTrivialIf(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> statements)
private static BlockIdentifier
LoopIdentifier. considerAsWhileLoopStart(Method method, Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Map<BlockIdentifier,Op03SimpleStatement> postBlockCache)
(package private) static boolean
LoopIdentifier. containsTargetInBlock(Op03SimpleStatement stm, BlockIdentifier block)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyBlock(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement start, Op03SimpleStatement end, java.util.Set<Op03SimpleStatement> valid, BlockIdentifier containedIn, java.util.Set<Op03SimpleStatement> addSources, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> orig2copy)
private void
InlineDeAssigner. deAssign(Op03SimpleStatement container, java.util.List<Op03SimpleStatement> added)
private void
InlineDeAssigner. deAssign(AssignmentSimple assignmentSimple, Op03SimpleStatement container, java.util.List<Op03SimpleStatement> added)
private static boolean
LoopLivenessClash. detect(Op03SimpleStatement statement, BytecodeMeta bytecodeMeta)
private static boolean
ConditionalRewriter. detectAndRemarkJumpIntoOther(java.util.Set<BlockIdentifier> blocksAtStart, java.util.Set<BlockIdentifier> blocksAtEnd, Op03SimpleStatement realEnd, Op03SimpleStatement ifStatement)
private static boolean
ExceptionRewriters. eliminateCatchTemporary(Op03SimpleStatement catchh)
private static Op03SimpleStatement
SwitchReplacer. examineSwitchContiguity(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, boolean pullCodeIntoCase, boolean allowMalformedSwitch, DecompilerComments comments, BytecodeMeta bytecodeMeta)
private static void
TryRewriter. extendTryBlock(Op03SimpleStatement tryStatement, java.util.List<Op03SimpleStatement> in, DCCommonState dcCommonState)
private static void
TryRewriter. extractExceptionJumps(Op03SimpleStatement tryi, java.util.List<Op03SimpleStatement> in)
private static boolean
ExceptionRewriters. extractExceptionMiddle(Op03SimpleStatement trystm, java.util.List<Op03SimpleStatement> statements, ExceptionRewriters.SingleExceptionAddressing trycatch)
private static boolean
KotlinSwitchHandler. extractStringSwitch(Op03SimpleStatement swatch, java.util.List<Op03SimpleStatement> in, BytecodeMeta bytecodeMeta)
private static Op03SimpleStatement
LoopIdentifier. findFirstConditional(Op03SimpleStatement start)
private static java.util.Set<LValue>
WhileRewriter. findForInvariants(Op03SimpleStatement start, BlockIdentifier whileLoop)
private static Op03SimpleStatement
WhileRewriter. findMovableAssignment(Op03SimpleStatement start, LValue lValue)
(package private) static Op03SimpleStatement
Misc. findSingleBackSource(Op03SimpleStatement start)
private static void
SynchronizedBlocks. findSynchronizedRange(Op03SimpleStatement start, Expression monitorEnterExpression)
(package private) static Op03SimpleStatement
Misc. followNopGoto(Op03SimpleStatement in, boolean requireJustOneSource, boolean aggressive)
(package private) static java.util.Set<Op03SimpleStatement>
Misc. followNopGotoBackwards(Op03SimpleStatement eventualtarget)
static Op03SimpleStatement
Misc. followNopGotoChain(Op03SimpleStatement in, boolean requireJustOneSource, boolean skipLabels)
static Op03SimpleStatement
Misc. followNopGotoChainUntil(Op03SimpleStatement in, Op03SimpleStatement until, boolean requireJustOneSource, boolean skipLabels)
(package private) static java.util.Set<Op03SimpleStatement>
Misc.GraphVisitorBlockReachable. getBlockReachable(Op03SimpleStatement start, BlockIdentifier blockIdentifier)
(package private) static Pair<java.util.Set<Op03SimpleStatement>,java.util.Set<Op03SimpleStatement>>
Misc.GraphVisitorBlockReachable. getBlockReachableAndExits(Op03SimpleStatement start, BlockIdentifier blockIdentifier)
(package private) static Op03SimpleStatement
LoopIdentifier. getCloseFwdJumpInto(Op03SimpleStatement start, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements, int startIdx, int lastIdx)
private static Op03SimpleStatement
WhileRewriter. getForInvariant(Op03SimpleStatement start, LValue invariant, BlockIdentifier whileLoop)
private static Op03SimpleStatement
TryRewriter. getLastContiguousBlockStatement(BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> in, Op03SimpleStatement preBlock)
private static LinearScannedBlock
ExceptionRewriters. getLinearScannedBlock(java.util.List<Op03SimpleStatement> statements, int idx, Op03SimpleStatement stm, BlockIdentifier blockIdentifier, boolean prefix)
private Op03SimpleStatement
JumpsIntoLoopCloneRewriter. getPossLast(Op03SimpleStatement stm, BlockIdentifier ident)
private static ExceptionRewriters.SingleExceptionAddressing
ExceptionRewriters. getSingleTryCatch(Op03SimpleStatement trystm, java.util.List<Op03SimpleStatement> statements)
private boolean
JumpsIntoLoopCloneRewriter. handleConditionalCaller(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement target, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> copies)
private static void
ExceptionRewriters. identifyCatchBlock(Op03SimpleStatement start, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements)
private static Op03SimpleStatement
ExceptionRewriters. insertBlockPadding(java.lang.String comment, Op03SimpleStatement insertAfter, Op03SimpleStatement insertBefore, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements)
Op03SimpleStatement
Misc.GetBackJump. invoke(Op03SimpleStatement in)
static boolean
Misc. justReachableFrom(Op03SimpleStatement target, Op03SimpleStatement maybeSource, int checkDepth)
private static Op03SimpleStatement
PointlessJumps. maybeMoveTarget(Op03SimpleStatement expectedRetarget, Op03SimpleStatement source, java.util.List<Op03SimpleStatement> statements)
private static void
SwitchReplacer. moveInternalJumpsToTerminal(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, Op03SimpleStatement lastTgt, Op03SimpleStatement following, java.util.List<Op03SimpleStatement> forwardJumpSources)
private static void
SwitchReplacer. moveJumpsToCaseStatements(Op03SimpleStatement switchStatement)
private static void
SwitchReplacer. moveJumpsToTerminalIfEmpty(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements)
private static Op03SimpleStatement
SwitchReplacer. moveSwitch(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, Op03SimpleStatement firstCase, int idxFirstCase, java.util.List<Op03SimpleStatement> targets)
private void
JumpsIntoLoopCloneRewriter. nopPointlessCondition(IfStatement newConditionStatement, Op03SimpleStatement newCondition)
private static boolean
DupAssigns. normalizeDupAssigns_type1(Op03SimpleStatement stm)
private static boolean
RemoveDeterministicJumps. propagateLiteralReturn(Method method, Op03SimpleStatement original, java.util.Map<LValue,Literal> display)
private static boolean
RemoveDeterministicJumps. propagateLiteralReturn(Method method, Op03SimpleStatement original, Op03SimpleStatement orignext, LValue originalLValue, Expression originalRValue, java.util.Map<LValue,Literal> display)
private static boolean
PrePostchangeAssignmentRewriter. pushPreChange(Op03SimpleStatement preChange, boolean back)
private static boolean
ReturnRewriter. pushReturnBack(Op03SimpleStatement returnStm)
private static boolean
PushThroughGoto. pushThroughGoto(Op03SimpleStatement forwardGoto, java.util.List<Op03SimpleStatement> statements)
private void
JumpsIntoLoopCloneRewriter. refactorDo(java.util.List<Op03SimpleStatement> addThese, Op03SimpleStatement stm, BlockIdentifier ident)
private void
JumpsIntoLoopCloneRewriter. refactorWhile(java.util.List<Op03SimpleStatement> addThese, Op03SimpleStatement stm, BlockIdentifier ident)
private static boolean
SynchronizedRewriter. removeSynchronizedCatchBlock(Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements)
private static void
RemoveDeterministicJumps. replace(Op03SimpleStatement source, boolean isIf, ReturnStatement returnNothingStatement)
private static void
RemoveDeterministicJumps. replaceAssignmentReturn(Op03SimpleStatement assignment, ReturnStatement returnStatement)
private static void
RemoveDeterministicJumps. replaceConditionalReturn(Op03SimpleStatement conditional, ReturnStatement returnStatement)
private static void
ConditionalSimplifier. replaceEclipseReturn(Op03SimpleStatement statement, IfStatement ifStatement)
private static void
PrePostchangeAssignmentRewriter. replacePostChangeAssignment(Op03SimpleStatement statement)
private static boolean
PrePostchangeAssignmentRewriter. replacePreChangeAssignment(Op03SimpleStatement statement)
private static Op03SimpleStatement
SwitchReplacer. replaceRawSwitch(Method method, Op03SimpleStatement swatch, java.util.List<Op03SimpleStatement> in, BlockIdentifierFactory blockIdentifierFactory, Options options)
private static void
ReturnRewriter. replaceReturningIf(Op03SimpleStatement ifStatement, boolean aggressive)
private static boolean
AnonymousArray. resugarAnonymousArray(Op03SimpleStatement newArray)
private boolean
DeadConditionalRemover. rewrite(Op03SimpleStatement stm)
private static void
InlineDeAssigner. rewrite(InlineDeAssigner.Deassigner deassigner, Op03SimpleStatement container, java.util.List<Op03SimpleStatement> added)
private void
InstanceConstants. rewrite1(JavaRefTypeInstance thisType, Op03SimpleStatement stm, DCCommonState state)
private static void
IterLoopRewriter. rewriteArrayForLoop(Op03SimpleStatement loop, java.util.List<Op03SimpleStatement> statements)
private static void
WhileRewriter. rewriteDoWhileTruePredAsWhile(Op03SimpleStatement end, java.util.List<Op03SimpleStatement> statements)
private static boolean
SwitchReplacer. rewriteDuff(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, VariableFactory vf, DecompilerComments decompilerComments)
private static void
LoopIdentifier. rewriteEndLoopOverlapStatement(Op03SimpleStatement oldEnd, BlockIdentifier loopBlock)
private static void
IterLoopRewriter. rewriteIteratorWhileLoop(Op03SimpleStatement loop, java.util.List<Op03SimpleStatement> statements)
private static void
TryRewriter. rewriteTryBackJump(Op03SimpleStatement stm)
private static void
WhileRewriter. rewriteWhileAsFor(Op03SimpleStatement statement, boolean aggcapture)
static Op03SimpleStatement
Misc. skipComments(Op03SimpleStatement stm)
boolean
ConditionalRewriter.IsForwardIf. test(Op03SimpleStatement in)
boolean
ExactTypeFilter. test(Op03SimpleStatement in)
boolean
Misc.HasBackJump. test(Op03SimpleStatement in)
boolean
Misc.IsBackJumpTo. test(Op03SimpleStatement in)
boolean
Misc.IsForwardJumpTo. test(Op03SimpleStatement in)
boolean
PrePostchangeAssignmentRewriter.StatementCanBePostMutation. test(Op03SimpleStatement in)
boolean
SynchronizedRewriter.FindBlockStarts. test(Op03SimpleStatement in)
boolean
TypeFilter. test(Op03SimpleStatement in)
private static ConditionalRewriter.DiscoveredTernary
ConditionalRewriter. testForTernary(java.util.List<Op03SimpleStatement> ifBranch, java.util.List<Op03SimpleStatement> elseBranch, Op03SimpleStatement leaveIfBranch)
private static void
SwitchReplacer. tightenJumpsToTerminal(java.util.List<Op03SimpleStatement> statements, BlockIdentifier switchBlock, Op03SimpleStatement following, Op03SimpleStatement followingTrans)
private static void
SwitchReplacer. tryInlineRawSwitchContent(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements)
private static int
LoopIdentifier. validateAndAssignLoopIdentifier(java.util.List<Op03SimpleStatement> statements, int idxTestStart, int idxAfterEnd, BlockIdentifier blockIdentifier, Op03SimpleStatement start)
private static boolean
SynchronizedRewriter. verifyLinearBlock(Op03SimpleStatement current, BlockIdentifier block, int num)
private GraphVisitor<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. visitCandidates(BlockIdentifier blockIdent, Op03SimpleStatement possLast, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> candidates)
Method parameters in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters with type arguments of type Op03SimpleStatement Modifier and Type Method Description private static boolean
SynchronizedBlocks. anyOpHasEffect(java.util.List<Op03SimpleStatement> ops)
static java.util.List<Op03SimpleStatement>
RemoveDeterministicJumps. apply(Method method, java.util.List<Op03SimpleStatement> statements)
private static boolean
SwitchReplacer. blockIsContiguous(java.util.List<Op03SimpleStatement> in, Op03SimpleStatement start, java.util.Set<Op03SimpleStatement> blockContent)
private static boolean
SwitchReplacer. blockIsContiguous(java.util.List<Op03SimpleStatement> in, Op03SimpleStatement start, java.util.Set<Op03SimpleStatement> blockContent)
private static void
SwitchReplacer. buildSwitchCases(Op03SimpleStatement swatch, java.util.List<Op03SimpleStatement> targets, BlockIdentifier switchBlockIdentifier, java.util.List<Op03SimpleStatement> in, boolean forcedOrder)
void
Misc.GraphVisitorBlockReachable. call(Op03SimpleStatement arg1, GraphVisitor<Op03SimpleStatement> arg2)
void
Misc.GraphVisitorReachableInThese. call(Op03SimpleStatement node, GraphVisitor<Op03SimpleStatement> graphVisitor)
void
SwitchReplacer.NodeReachable. call(Op03SimpleStatement arg1, GraphVisitor<Op03SimpleStatement> arg2)
void
SwitchReplacer.NodesReachedUntil. call(Op03SimpleStatement arg1, GraphVisitor<Op03SimpleStatement> arg2)
private static int
SwitchReplacer. checkPreSwitchJump(java.util.List<Op03SimpleStatement> statements, Op03SimpleStatement switchStm, int idxLastStart, int idxLastEnd)
(package private) static void
ClassifyGotos. classifyAnonymousBlockGotos(java.util.List<Op03SimpleStatement> in, boolean agressive)
static void
Op03Rewriters. classifyAnonymousBlockGotos(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive)
private static void
ClassifyGotos. classifyCatchLeaveGoto(Op03SimpleStatement gotoStm, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.Map<BlockIdentifier,java.util.Set<BlockIdentifier>> catchBlockToTryBlocks, java.util.List<Op03SimpleStatement> in)
private static void
ClassifyGotos. classifyCatchLeaveGoto(Op03SimpleStatement gotoStm, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.Map<BlockIdentifier,java.util.Set<BlockIdentifier>> catchBlockToTryBlocks, java.util.List<Op03SimpleStatement> in)
(package private) static void
ClassifyGotos. classifyGotos(java.util.List<Op03SimpleStatement> in)
static void
Op03Rewriters. classifyGotos(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
private static boolean
ClassifyGotos. classifyTryCatchLeaveGoto(Op03SimpleStatement gotoStm, java.util.Set<BlockIdentifier> blocks, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.List<Op03SimpleStatement> in)
private static boolean
ClassifyGotos. classifyTryCatchLeaveGoto(Op03SimpleStatement gotoStm, java.util.Set<BlockIdentifier> blocks, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.List<Op03SimpleStatement> in)
private static boolean
ClassifyGotos. classifyTryLeaveGoto(Op03SimpleStatement gotoStm, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.List<Op03SimpleStatement> in)
private static boolean
ClassifyGotos. classifyTryLeaveGoto(Op03SimpleStatement gotoStm, int idx, java.util.Set<BlockIdentifier> tryBlockIdents, java.util.Map<BlockIdentifier,Op03SimpleStatement> tryStatementsByBlock, java.util.Map<BlockIdentifier,java.util.List<BlockIdentifier>> catchStatementByBlock, java.util.List<Op03SimpleStatement> in)
static void
Op03Rewriters. cloneCodeFromLoop(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments)
(package private) static void
ConditionalCondenser. collapseAssignmentsIntoConditionals(java.util.List<Op03SimpleStatement> statements, Options options, ClassFileVersion classFileVersion)
static void
Op03Rewriters. collapseAssignmentsIntoConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, Options options, ClassFileVersion classFileVersion)
(package private) static java.util.Set<Op03SimpleStatement>
Misc. collectAllSources(java.util.Collection<Op03SimpleStatement> statements)
(package private) static void
ExceptionRewriters. combineTryCatchBlocks(java.util.List<Op03SimpleStatement> in)
static void
Op03Rewriters. combineTryCatchBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
Op03Rewriters. combineTryCatchEnds(java.util.List<Op03SimpleStatement> in)
(package private) static void
TryRewriter. combineTryCatchEnds(java.util.List<Op03SimpleStatement> in)
private static void
TryRewriter. combineTryCatchEnds(Op03SimpleStatement tryStatement, java.util.List<Op03SimpleStatement> in)
static void
MonitorRewriter. commentMonitors(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. commentMonitors(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
private static boolean
CondenseConditionals. condenseConditional2_type1(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> allStatements)
private static boolean
CondenseConditionals. condenseConditional2_type3(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> allStatements)
static boolean
CondenseConditionals. condenseConditionals(java.util.List<Op03SimpleStatement> statements)
static boolean
Op03Rewriters. condenseConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static boolean
CondenseConditionals. condenseConditionals2(java.util.List<Op03SimpleStatement> statements)
static boolean
Op03Rewriters. condenseConditionals2(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
CondenseConstruction. condenseConstruction(DCCommonState state, Method method, java.util.List<Op03SimpleStatement> statements, AnonymousClassUsage anonymousClassUsage)
static void
Op03Rewriters. condenseConstruction(DCCommonState dcCommonState, Method method, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, AnonymousClassUsage anonymousClassUsage)
static void
LValueCondense. condenseLValueChain1(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. condenseLValueChain1(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
LValueCondense. condenseLValueChain2(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. condenseLValueChain2(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
LValueProp. condenseLValues(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
LValuePropSimple. condenseSimpleLValues(java.util.List<Op03SimpleStatement> statementList)
static void
Op03Rewriters. condenseStaticInstances(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
private static boolean
ConditionalRewriter. considerAsDexIf(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> statements)
private static BlockIdentifier
LoopIdentifier. considerAsDoLoopStart(Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Map<BlockIdentifier,Op03SimpleStatement> postBlockCache)
private static BlockIdentifier
LoopIdentifier. considerAsDoLoopStart(Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Map<BlockIdentifier,Op03SimpleStatement> postBlockCache)
private static void
LoopIdentifier. considerAsPathologicalLoop(Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements)
private static boolean
ConditionalRewriter. considerAsSimpleIf(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Set<Op03SimpleStatement> ignoreTheseJumps, boolean reduceSimpleScope)
private static boolean
ConditionalRewriter. considerAsSimpleIf(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Set<Op03SimpleStatement> ignoreTheseJumps, boolean reduceSimpleScope)
private static boolean
ConditionalRewriter. considerAsTrivialIf(Op03SimpleStatement ifStatement, java.util.List<Op03SimpleStatement> statements)
private static BlockIdentifier
LoopIdentifier. considerAsWhileLoopStart(Method method, Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Map<BlockIdentifier,Op03SimpleStatement> postBlockCache)
private static BlockIdentifier
LoopIdentifier. considerAsWhileLoopStart(Method method, Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, java.util.Map<BlockIdentifier,Op03SimpleStatement> postBlockCache)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyBlock(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement start, Op03SimpleStatement end, java.util.Set<Op03SimpleStatement> valid, BlockIdentifier containedIn, java.util.Set<Op03SimpleStatement> addSources, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> orig2copy)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyBlock(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement start, Op03SimpleStatement end, java.util.Set<Op03SimpleStatement> valid, BlockIdentifier containedIn, java.util.Set<Op03SimpleStatement> addSources, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> orig2copy)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyBlock(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement start, Op03SimpleStatement end, java.util.Set<Op03SimpleStatement> valid, BlockIdentifier containedIn, java.util.Set<Op03SimpleStatement> addSources, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> orig2copy)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyST(java.util.List<Op03SimpleStatement> original, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> replacements, boolean failIfMissing)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyST(java.util.List<Op03SimpleStatement> original, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> replacements, boolean failIfMissing)
private java.util.List<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. copyST(java.util.List<Op03SimpleStatement> original, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> replacements, boolean failIfMissing)
private void
InlineDeAssigner. deAssign(Op03SimpleStatement container, java.util.List<Op03SimpleStatement> added)
private void
InlineDeAssigner. deAssign(AssignmentSimple assignmentSimple, Op03SimpleStatement container, java.util.List<Op03SimpleStatement> added)
static boolean
LoopLivenessClash. detect(java.util.List<Op03SimpleStatement> statements, BytecodeMeta bytecodeMeta)
static void
EclipseLoops. eclipseLoopPass(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. eclipseLoopPass(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static java.util.List<Op03SimpleStatement>
ExceptionRewriters. eliminateCatchTemporaries(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. eliminateCatchTemporaries(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
private static Op03SimpleStatement
SwitchReplacer. examineSwitchContiguity(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, boolean pullCodeIntoCase, boolean allowMalformedSwitch, DecompilerComments comments, BytecodeMeta bytecodeMeta)
private static void
TryRewriter. extendTryBlock(Op03SimpleStatement tryStatement, java.util.List<Op03SimpleStatement> in, DCCommonState dcCommonState)
static void
Op03Rewriters. extendTryBlocks(DCCommonState dcCommonState, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
TryRewriter. extendTryBlocks(DCCommonState dcCommonState, java.util.List<Op03SimpleStatement> in)
(package private) static void
AssertionJumps. extractAssertionJumps(java.util.List<Op03SimpleStatement> in)
static void
Op03Rewriters. extractAssertionJumps(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
InlineDeAssigner. extractAssignments(java.util.List<Op03SimpleStatement> statements)
private static void
ExceptionRewriters. extractCatchEnd(java.util.List<Op03SimpleStatement> statements, ExceptionRewriters.SingleExceptionAddressing trycatch)
static void
Op03Rewriters. extractExceptionJumps(java.util.List<Op03SimpleStatement> in)
(package private) static void
TryRewriter. extractExceptionJumps(java.util.List<Op03SimpleStatement> in)
private static void
TryRewriter. extractExceptionJumps(Op03SimpleStatement tryi, java.util.List<Op03SimpleStatement> in)
(package private) static void
ExceptionRewriters. extractExceptionMiddle(java.util.List<Op03SimpleStatement> in)
private static boolean
ExceptionRewriters. extractExceptionMiddle(Op03SimpleStatement trystm, java.util.List<Op03SimpleStatement> statements, ExceptionRewriters.SingleExceptionAddressing trycatch)
static void
Op03Rewriters. extractExceptionMiddle(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
private static boolean
KotlinSwitchHandler. extractStringSwitch(Op03SimpleStatement swatch, java.util.List<Op03SimpleStatement> in, BytecodeMeta bytecodeMeta)
static java.util.List<Op03SimpleStatement>
KotlinSwitchHandler. extractStringSwitches(java.util.List<Op03SimpleStatement> in, BytecodeMeta bytecodeMeta)
(package private) static BlockIdentifier
Misc. findOuterBlock(BlockIdentifier b1, BlockIdentifier b2, java.util.List<Op03SimpleStatement> statements)
private static int
ConditionalRewriter. findOverIdx(int startNext, java.util.List<Op03SimpleStatement> statements)
static void
SynchronizedBlocks. findSynchronizedBlocks(java.util.List<Op03SimpleStatement> statements)
private static void
LoopIdentifier. fixLoopOverlaps(java.util.List<Op03SimpleStatement> statements, java.util.List<LoopIdentifier.LoopResult> loopResults, java.util.Set<BlockIdentifier> relevantBlocks)
static void
Misc. flattenCompoundStatements(java.util.List<Op03SimpleStatement> statements)
(package private) static java.util.Set<BlockIdentifier>
FinallyRewriter. getBlocksAffectedByFinally(java.util.List<Op03SimpleStatement> statements)
(package private) static Op03SimpleStatement
LoopIdentifier. getCloseFwdJumpInto(Op03SimpleStatement start, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements, int startIdx, int lastIdx)
(package private) static int
Misc. getFarthestReachableInRange(java.util.List<Op03SimpleStatement> statements, int start, int afterEnd)
private static java.util.Map<BlockIdentifier,Op03SimpleStatement>
ExceptionRewriters. getFirstByBlock(java.util.List<Op03SimpleStatement> in)
private static Op03SimpleStatement
TryRewriter. getLastContiguousBlockStatement(BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> in, Op03SimpleStatement preBlock)
static Op03SimpleStatement
Misc. getLastInRangeByIndex(java.util.Set<Op03SimpleStatement> stms)
private static LinearScannedBlock
ExceptionRewriters. getLinearScannedBlock(java.util.List<Op03SimpleStatement> statements, int idx, Op03SimpleStatement stm, BlockIdentifier blockIdentifier, boolean prefix)
private static java.util.List<Op03SimpleStatement>
WhileRewriter. getMutations(java.util.List<Op03SimpleStatement> backSources, LValue loopVariable, BlockIdentifier whileBlockIdentifier)
private static ExceptionRewriters.SingleExceptionAddressing
ExceptionRewriters. getSingleTryCatch(Op03SimpleStatement trystm, java.util.List<Op03SimpleStatement> statements)
private static java.util.List<Op03SimpleStatement>
ExceptionRewriters. getTries(java.util.List<Op03SimpleStatement> in)
private boolean
JumpsIntoLoopCloneRewriter. handleConditionalCaller(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement target, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> copies)
private boolean
JumpsIntoLoopCloneRewriter. handleConditionalCaller(Op03SimpleStatement stm, Op03SimpleStatement caller, Op03SimpleStatement target, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> copies)
static void
ExceptionRewriters. handleEmptyTries(java.util.List<Op03SimpleStatement> in)
private static void
ExceptionRewriters. identifyCatchBlock(Op03SimpleStatement start, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements)
(package private) static void
ExceptionRewriters. identifyCatchBlocks(java.util.List<Op03SimpleStatement> in, BlockIdentifierFactory blockIdentifierFactory)
static void
Op03Rewriters. identifyCatchBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory)
static void
FinallyRewriter. identifyFinally(Options options, Method method, java.util.List<Op03SimpleStatement> in, BlockIdentifierFactory blockIdentifierFactory)
static void
LoopIdentifier. identifyLoops1(Method method, java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory)
static void
ConditionalRewriter. identifyNonjumpingConditionals(java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory, Options options)
static void
GenericInferer. inferGenericObjectInfoFromCalls(java.util.List<Op03SimpleStatement> statements)
private static Op03SimpleStatement
ExceptionRewriters. insertBlockPadding(java.lang.String comment, Op03SimpleStatement insertAfter, Op03SimpleStatement insertBefore, BlockIdentifier blockIdentifier, java.util.List<Op03SimpleStatement> statements)
private static boolean
ConditionalRewriter. isRangeOnlyReachable(int startIdx, int endIdx, int tgtIdx, java.util.List<Op03SimpleStatement> statements, java.util.Set<Op03SimpleStatement> permittedSources)
private static boolean
ConditionalRewriter. isRangeOnlyReachable(int startIdx, int endIdx, int tgtIdx, java.util.List<Op03SimpleStatement> statements, java.util.Set<Op03SimpleStatement> permittedSources)
static void
AnonymousBlocks. labelAnonymousBlocks(java.util.List<Op03SimpleStatement> statements, BlockIdentifierFactory blockIdentifierFactory)
static void
Op03Rewriters. labelAnonymousBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, BlockIdentifierFactory blockIdentifierFactory)
(package private) static void
Misc. markWholeBlock(java.util.List<Op03SimpleStatement> statements, BlockIdentifier blockIdentifier)
private static Op03SimpleStatement
PointlessJumps. maybeMoveTarget(Op03SimpleStatement expectedRetarget, Op03SimpleStatement source, java.util.List<Op03SimpleStatement> statements)
private boolean
JumpsIntoDoRewriter. maybeRewriteImmediate(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, int x)
private static void
SwitchReplacer. moveInternalJumpsToTerminal(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, Op03SimpleStatement lastTgt, Op03SimpleStatement following, java.util.List<Op03SimpleStatement> forwardJumpSources)
static void
Op03Rewriters. moveJumpsIntoDo(VariableFactory vf, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, Options options, DecompilerComments comments)
private static void
SwitchReplacer. moveJumpsToTerminalIfEmpty(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements)
private static Op03SimpleStatement
SwitchReplacer. moveSwitch(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, Op03SimpleStatement firstCase, int idxFirstCase, java.util.List<Op03SimpleStatement> targets)
static void
Op03Rewriters. narrowAssignmentTypes(Method method, java.util.List<Op03SimpleStatement> statements)
(package private) static void
IsolatedStackValue. nopIsolatedStackValues(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. nopIsolatedStackValues(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static boolean
DupAssigns. normalizeDupAssigns(java.util.List<Op03SimpleStatement> statements)
static boolean
Op03Rewriters. normalizeDupAssigns(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
Op03Rewriters. optimiseForTypes(java.util.List<Op03SimpleStatement> statements)
static void
RemoveDeterministicJumps. propagateToReturn(Method method, java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. propagateToReturn2(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
ReturnRewriter. propagateToReturn2(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. pushPreChangeBack(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
PrePostchangeAssignmentRewriter. pushPreChangeBack(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. pushThroughGoto(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
PushThroughGoto. pushThroughGoto(java.util.List<Op03SimpleStatement> statements)
private static boolean
PushThroughGoto. pushThroughGoto(Op03SimpleStatement forwardGoto, java.util.List<Op03SimpleStatement> statements)
static void
SwitchReplacer. rebuildSwitches(java.util.List<Op03SimpleStatement> statements, Options options, DecompilerComments comments, BytecodeMeta bytecodeMeta)
private void
JumpsIntoLoopCloneRewriter. refactorDo(java.util.List<Op03SimpleStatement> addThese, Op03SimpleStatement stm, BlockIdentifier ident)
private void
JumpsIntoLoopCloneRewriter. refactorWhile(java.util.List<Op03SimpleStatement> addThese, Op03SimpleStatement stm, BlockIdentifier ident)
void
LinearScannedBlock. reindex(java.util.List<Op03SimpleStatement> in)
static void
Cleaner. reindexInPlace(java.util.List<Op03SimpleStatement> statements)
(package private) static void
JoinBlocks. rejoinBlocks(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. rejoinBlocks(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
Cleaner. reLinkInPlace(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. relinkInstanceConstants(JavaRefTypeInstance thisType, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, DCCommonState dcCommonState)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. removeDeadConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
Op03Rewriters. removePointlessExpressionStatements(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
PointlessExpressions. removePointlessExpressionStatements(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. removePointlessJumps(java.util.List<Op03SimpleStatement> statements)
static void
PointlessJumps. removePointlessJumps(java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. removeRedundantTries(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
RedundantTries. removeRedundantTries(java.util.List<Op03SimpleStatement> statements)
private static boolean
SynchronizedRewriter. removeSynchronizedCatchBlock(Op03SimpleStatement start, java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. removeSynchronizedCatchBlocks(Options options, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
SynchronizedRewriter. removeSynchronizedCatchBlocks(Options options, java.util.List<Op03SimpleStatement> in)
static java.util.List<Op03SimpleStatement>
Cleaner. removeUnreachableCode(java.util.List<Op03SimpleStatement> statements, boolean checkBackJumps)
static java.util.List<Op03SimpleStatement>
Op03Rewriters. removeUselessNops(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static java.util.List<Op03SimpleStatement>
UselessNops. removeUselessNops(java.util.List<Op03SimpleStatement> in)
static void
Op03Rewriters. replacePrePostChangeAssignments(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
PrePostchangeAssignmentRewriter. replacePrePostChangeAssignments(java.util.List<Op03SimpleStatement> statements)
private static Op03SimpleStatement
SwitchReplacer. replaceRawSwitch(Method method, Op03SimpleStatement swatch, java.util.List<Op03SimpleStatement> in, BlockIdentifierFactory blockIdentifierFactory, Options options)
static void
SwitchReplacer. replaceRawSwitches(Method method, java.util.List<Op03SimpleStatement> in, BlockIdentifierFactory blockIdentifierFactory, Options options, DecompilerComments comments, BytecodeMeta bytecodeMeta)
static void
Op03Rewriters. replaceReturningIfs(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive)
(package private) static void
ReturnRewriter. replaceReturningIfs(java.util.List<Op03SimpleStatement> statements, boolean aggressive)
static void
Op03Rewriters. replaceStackVarsWithLocals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
AnonymousArray. resugarAnonymousArrays(java.util.List<Op03SimpleStatement> statements)
void
BadCompareRewriter. rewrite(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
java.util.List<Op03SimpleStatement>
DeadConditionalRemover. rewrite(java.util.List<Op03SimpleStatement> statements)
private static void
InlineDeAssigner. rewrite(InlineDeAssigner.Deassigner deassigner, Op03SimpleStatement container, java.util.List<Op03SimpleStatement> added)
void
InstanceConstants. rewrite(JavaRefTypeInstance thisType, java.util.List<Op03SimpleStatement> op03SimpleParseNodes, DCCommonState state)
void
JumpsIntoDoRewriter. rewrite(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, DecompilerComments comments)
void
JumpsIntoLoopCloneRewriter. rewrite(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, DecompilerComments comments)
static void
NarrowingTypeRewriter. rewrite(Method method, java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
StaticInitReturnRewriter. rewrite(Options options, Method method, java.util.List<Op03SimpleStatement> statementList)
void
StaticInstanceCondenser. rewrite(java.util.List<Op03SimpleStatement> statements)
private static void
IterLoopRewriter. rewriteArrayForLoop(Op03SimpleStatement loop, java.util.List<Op03SimpleStatement> statements)
static void
IterLoopRewriter. rewriteArrayForLoops(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. rewriteBadCompares(VariableFactory vf, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
BreakRewriter. rewriteBreakStatements(java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. rewriteBreakStatements(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
static void
Op03Rewriters. rewriteDoWhileTruePredAsWhile(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
WhileRewriter. rewriteDoWhileTruePredAsWhile(java.util.List<Op03SimpleStatement> statements)
private static void
WhileRewriter. rewriteDoWhileTruePredAsWhile(Op03SimpleStatement end, java.util.List<Op03SimpleStatement> statements)
static java.util.List<Op03SimpleStatement>
SwitchReplacer. rewriteDuff(java.util.List<Op03SimpleStatement> statements, VariableFactory vf, DecompilerComments decompilerComments, Options options)
private static boolean
SwitchReplacer. rewriteDuff(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements, VariableFactory vf, DecompilerComments decompilerComments)
private static void
IterLoopRewriter. rewriteIteratorWhileLoop(Op03SimpleStatement loop, java.util.List<Op03SimpleStatement> statements)
static void
IterLoopRewriter. rewriteIteratorWhileLoops(java.util.List<Op03SimpleStatement> statements)
static void
NegativeJumps. rewriteNegativeJumps(java.util.List<Op03SimpleStatement> statements, boolean requireChainedConditional)
static void
Op03Rewriters. rewriteNegativeJumps(java.util.List<Op03SimpleStatement> statements, boolean requireChainedConditional)
static void
Op03Rewriters. rewriteTryBackJumps(java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
TryRewriter. rewriteTryBackJumps(java.util.List<Op03SimpleStatement> in)
static void
Op03Rewriters. rewriteWhilesAsFors(Options options, java.util.List<Op03SimpleStatement> op03SimpleParseNodes)
(package private) static void
WhileRewriter. rewriteWhilesAsFors(Options options, java.util.List<Op03SimpleStatement> statements)
static void
Op03Rewriters. rewriteWith(java.util.List<Op03SimpleStatement> in, ExpressionRewriter expressionRewriter)
(package private) static void
ConditionalSimplifier. simplifyConditionals(java.util.List<Op03SimpleStatement> statements, boolean aggressive, Method method)
static void
Op03Rewriters. simplifyConditionals(java.util.List<Op03SimpleStatement> op03SimpleParseNodes, boolean aggressive, Method method)
static java.util.List<Op03SimpleStatement>
Cleaner. sortAndRenumber(java.util.List<Op03SimpleStatement> statements)
(package private) static void
Cleaner. sortAndRenumberFromInPlace(java.util.List<Op03SimpleStatement> statements, InstrIndex start)
(package private) static void
Cleaner. sortAndRenumberInPlace(java.util.List<Op03SimpleStatement> statements)
private static ConditionalRewriter.DiscoveredTernary
ConditionalRewriter. testForTernary(java.util.List<Op03SimpleStatement> ifBranch, java.util.List<Op03SimpleStatement> elseBranch, Op03SimpleStatement leaveIfBranch)
private static void
SwitchReplacer. tightenJumpsToTerminal(java.util.List<Op03SimpleStatement> statements, BlockIdentifier switchBlock, Op03SimpleStatement following, Op03SimpleStatement followingTrans)
private static void
SwitchReplacer. tryInlineRawSwitchContent(Op03SimpleStatement switchStatement, java.util.List<Op03SimpleStatement> statements)
private static int
LoopIdentifier. validateAndAssignLoopIdentifier(java.util.List<Op03SimpleStatement> statements, int idxTestStart, int idxAfterEnd, BlockIdentifier blockIdentifier, Op03SimpleStatement start)
private GraphVisitor<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. visitCandidates(BlockIdentifier blockIdent, Op03SimpleStatement possLast, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> candidates)
private GraphVisitor<Op03SimpleStatement>
JumpsIntoLoopCloneRewriter. visitCandidates(BlockIdentifier blockIdent, Op03SimpleStatement possLast, java.util.Map<Op03SimpleStatement,Op03SimpleStatement> candidates)
Constructors in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters with parameters of type Op03SimpleStatement Constructor Description GraphVisitorBlockReachable(Op03SimpleStatement start, BlockIdentifier blockIdentifier)
LinearScannedBlock(Op03SimpleStatement first, Op03SimpleStatement last, int idxFirst, int idxLast)
LoopResult(BlockIdentifier blockIdentifier, Op03SimpleStatement blockStart)
NodeReachable(java.util.Set<Op03SimpleStatement> otherCases, Op03SimpleStatement start, Op03SimpleStatement switchStatement, boolean forcedOrder)
NodesReachedUntil(Op03SimpleStatement start, Op03SimpleStatement target, java.util.Set<Op03SimpleStatement> banned)
OriginalSwitchLookupInfo(Op03SimpleStatement ifTest, Op03SimpleStatement stringMatchJump, TypedLiteral literal, Op03SimpleStatement target)
StatementEquivalenceConstraint(Op03SimpleStatement stm1, Op03SimpleStatement stm2)
Constructor parameters in org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters with type arguments of type Op03SimpleStatement Constructor Description GraphVisitorReachableInThese(java.util.Set<java.lang.Integer> reachable, java.util.Map<Op03SimpleStatement,java.lang.Integer> instrToIdx)
NodeReachable(java.util.Set<Op03SimpleStatement> otherCases, Op03SimpleStatement start, Op03SimpleStatement switchStatement, boolean forcedOrder)
NodesReachedUntil(Op03SimpleStatement start, Op03SimpleStatement target, java.util.Set<Op03SimpleStatement> banned)
-
Uses of Op03SimpleStatement in org.benf.cfr.reader.bytecode.analysis.parse.utils
Fields in org.benf.cfr.reader.bytecode.analysis.parse.utils declared as Op03SimpleStatement Modifier and Type Field Description private Op03SimpleStatement
LValueAssignmentExpressionRewriter. source
Methods in org.benf.cfr.reader.bytecode.analysis.parse.utils with parameters of type Op03SimpleStatement Modifier and Type Method Description private boolean
LValueAssignmentAndAliasCondenser. jumpsMethods(Op03SimpleStatement lvSc, Op03SimpleStatement statementContainer)
Constructors in org.benf.cfr.reader.bytecode.analysis.parse.utils with parameters of type Op03SimpleStatement Constructor Description LValueAssignmentExpressionRewriter(LValue lValue, AbstractAssignmentExpression lValueReplacement, Op03SimpleStatement source)
-
Uses of Op03SimpleStatement in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp
Fields in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp declared as Op03SimpleStatement Modifier and Type Field Description private Op03SimpleStatement
Result. afterEnd
private Op03SimpleStatement
FinallyCatchBody. catchCodeStart
private Op03SimpleStatement
PeerTries. possibleFinallyCatch
private Op03SimpleStatement
Result. start
private Op03SimpleStatement
FinallyCatchBody. throwOp
Fields in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp with type parameters of type Op03SimpleStatement Modifier and Type Field Description private java.util.List<Op03SimpleStatement>
FinallyCatchBody. body
private java.util.Set<Op03SimpleStatement>
FinallyCatchBody. bodySet
private java.util.Set<Op03SimpleStatement>
PeerTries.PeerTrySet. content
private java.util.Map<BlockIdentifier,Op03SimpleStatement>
PeerTries. guessPeerTryMap
private java.util.Set<Op03SimpleStatement>
PeerTries. guessPeerTryStarts
private java.util.Set<Op03SimpleStatement>
PeerTries. seenEver
private java.util.LinkedList<Op03SimpleStatement>
PeerTries. toProcess
private java.util.Set<Op03SimpleStatement>
Result. toRemove
Methods in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp that return Op03SimpleStatement Modifier and Type Method Description private static Op03SimpleStatement
FinalAnalyzer. findPossibleFinallyCatch(java.util.Set<Op03SimpleStatement> possibleCatches)
Op03SimpleStatement
Result. getAfterEnd()
(package private) Op03SimpleStatement
FinallyCatchBody. getCatchCodeStart()
(package private) Op03SimpleStatement
PeerTries. getOriginalFinally()
Op03SimpleStatement
Result. getStart()
(package private) Op03SimpleStatement
FinallyCatchBody. getThrowOp()
(package private) Op03SimpleStatement
PeerTries. removeNext()
Methods in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp that return types with arguments of type Op03SimpleStatement Modifier and Type Method Description private java.util.List<Op03SimpleStatement>
FinallyGraphHelper. filterFalseNegatives(java.util.List<Op03SimpleStatement> in, java.util.Set<Op03SimpleStatement> toRemove)
(package private) java.util.Map<BlockIdentifier,Op03SimpleStatement>
PeerTries. getGuessPeerTryMap()
(package private) java.util.Set<Op03SimpleStatement>
PeerTries. getGuessPeerTryStarts()
(package private) java.util.Collection<Op03SimpleStatement>
PeerTries.PeerTrySet. getPeerTries()
java.util.Set<Op03SimpleStatement>
Result. getToRemove()
Methods in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp with parameters of type Op03SimpleStatement Modifier and Type Method Description void
PeerTries. add(Op03SimpleStatement tryStatement)
void
PeerTries.PeerTrySet. add(Op03SimpleStatement op)
static FinallyCatchBody
FinallyCatchBody. build(Op03SimpleStatement catchStart, java.util.List<Op03SimpleStatement> allStatements)
boolean
FinallyCatchBody. contains(Op03SimpleStatement stm)
static void
FinalAnalyzer. identifyFinally(Method method, Op03SimpleStatement in, java.util.List<Op03SimpleStatement> allStatements, BlockIdentifierFactory blockIdentifierFactory, java.util.Set<Op03SimpleStatement> analysedTries)
private static boolean
FinalAnalyzer. identifyFinally2(Op03SimpleStatement in, PeerTries peerTries, FinallyGraphHelper finallyGraphHelper, java.util.Set<Result> results)
Result
FinallyGraphHelper. match(Op03SimpleStatement test)
private boolean
FinallyGraphHelper. treatAsJava13Finally(Op03SimpleStatement b, Statement sb)
private static boolean
FinalAnalyzer. verifyCatchFinally(Op03SimpleStatement in, FinallyGraphHelper finallyGraphHelper, PeerTries peerTries, java.util.Set<Result> results)
Method parameters in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp with type arguments of type Op03SimpleStatement Modifier and Type Method Description private static void
FinalAnalyzer. addPeerTries(java.util.Collection<Op03SimpleStatement> possibleFinally, PeerTries peerTries)
static FinallyCatchBody
FinallyCatchBody. build(Op03SimpleStatement catchStart, java.util.List<Op03SimpleStatement> allStatements)
private java.util.List<Op03SimpleStatement>
FinallyGraphHelper. filterFalseNegatives(java.util.List<Op03SimpleStatement> in, java.util.Set<Op03SimpleStatement> toRemove)
private java.util.List<Op03SimpleStatement>
FinallyGraphHelper. filterFalseNegatives(java.util.List<Op03SimpleStatement> in, java.util.Set<Op03SimpleStatement> toRemove)
private static Op03SimpleStatement
FinalAnalyzer. findPossibleFinallyCatch(java.util.Set<Op03SimpleStatement> possibleCatches)
static void
FinalAnalyzer. identifyFinally(Method method, Op03SimpleStatement in, java.util.List<Op03SimpleStatement> allStatements, BlockIdentifierFactory blockIdentifierFactory, java.util.Set<Op03SimpleStatement> analysedTries)
static void
FinalAnalyzer. identifyFinally(Method method, Op03SimpleStatement in, java.util.List<Op03SimpleStatement> allStatements, BlockIdentifierFactory blockIdentifierFactory, java.util.Set<Op03SimpleStatement> analysedTries)
Constructors in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp with parameters of type Op03SimpleStatement Constructor Description CompositeBlockIdentifierKey(Op03SimpleStatement statement)
FinallyCatchBody(Op03SimpleStatement throwOp, boolean isEmpty, Op03SimpleStatement catchCodeStart, java.util.List<Op03SimpleStatement> body)
PeerTries(Op03SimpleStatement possibleFinallyCatch)
Result(java.util.Set<Op03SimpleStatement> toRemove, Op03SimpleStatement start, Op03SimpleStatement afterEnd)
Constructor parameters in org.benf.cfr.reader.bytecode.analysis.parse.utils.finalhelp with type arguments of type Op03SimpleStatement Constructor Description FinallyCatchBody(Op03SimpleStatement throwOp, boolean isEmpty, Op03SimpleStatement catchCodeStart, java.util.List<Op03SimpleStatement> body)
Result(java.util.Set<Op03SimpleStatement> toRemove, Op03SimpleStatement start, Op03SimpleStatement afterEnd)
-