Modifier and Type | Field and Description |
---|---|
private Op03SimpleStatement |
Op03SimpleStatement.linearlyNext |
private Op03SimpleStatement |
Op03SimpleStatement.linearlyPrevious |
Modifier and Type | Field and 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 |
Modifier and Type | Method and Description |
---|---|
Op03SimpleStatement |
Op03Blocks.Block3.getEnd() |
Op03SimpleStatement |
Op03SimpleStatement.getLinearlyNext() |
Op03SimpleStatement |
Op03SimpleStatement.getLinearlyPrevious() |
Op03SimpleStatement |
Op03Blocks.Block3.getStart() |
Modifier and Type | Method and 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) |
Modifier and Type | Method and 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) |
Modifier and Type | Method and 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) |
Constructor and Description |
---|
Block3(Op03SimpleStatement s) |
Constructor and Description |
---|
GraphVisitorCallee(java.util.List<Op03SimpleStatement> reachableNodes) |
Modifier and Type | Field and 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 |
Modifier and Type | Field and 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 |
Modifier and Type | Method and 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) |
Modifier and Type | Method and 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.GraphVisitorReachableInThese.call(Op03SimpleStatement node,
GraphVisitor<Op03SimpleStatement> graphVisitor) |
void |
Misc.GraphVisitorBlockReachable.call(Op03SimpleStatement arg1,
GraphVisitor<Op03SimpleStatement> arg2) |
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(AssignmentSimple assignmentSimple,
Op03SimpleStatement container,
java.util.List<Op03SimpleStatement> added) |
private void |
InlineDeAssigner.deAssign(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) |
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 static void |
InlineDeAssigner.rewrite(InlineDeAssigner.Deassigner deassigner,
Op03SimpleStatement container,
java.util.List<Op03SimpleStatement> added) |
private boolean |
DeadConditionalRemover.rewrite(Op03SimpleStatement stm) |
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.IsForwardJumpTo.test(Op03SimpleStatement in) |
boolean |
Misc.IsBackJumpTo.test(Op03SimpleStatement in) |
boolean |
Misc.HasBackJump.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) |
Modifier and Type | Method and 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) |
private static void |
SwitchReplacer.buildSwitchCases(Op03SimpleStatement swatch,
java.util.List<Op03SimpleStatement> targets,
BlockIdentifier switchBlockIdentifier,
java.util.List<Op03SimpleStatement> in,
boolean forcedOrder) |
void |
Misc.GraphVisitorReachableInThese.call(Op03SimpleStatement node,
GraphVisitor<Op03SimpleStatement> graphVisitor) |
void |
Misc.GraphVisitorBlockReachable.call(Op03SimpleStatement arg1,
GraphVisitor<Op03SimpleStatement> arg2) |
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.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(AssignmentSimple assignmentSimple,
Op03SimpleStatement container,
java.util.List<Op03SimpleStatement> added) |
private void |
InlineDeAssigner.deAssign(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) |
static void |
Op03Rewriters.extractExceptionMiddle(java.util.List<Op03SimpleStatement> op03SimpleParseNodes) |
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) |
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) |
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) |
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 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) |
private static void |
InlineDeAssigner.rewrite(InlineDeAssigner.Deassigner deassigner,
Op03SimpleStatement container,
java.util.List<Op03SimpleStatement> added) |
void |
BadCompareRewriter.rewrite(java.util.List<Op03SimpleStatement> op03SimpleParseNodes) |
java.util.List<Op03SimpleStatement> |
DeadConditionalRemover.rewrite(java.util.List<Op03SimpleStatement> statements) |
void |
StaticInstanceCondenser.rewrite(java.util.List<Op03SimpleStatement> statements) |
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) |
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 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) |
Constructor and 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 and 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) |
Modifier and Type | Field and Description |
---|---|
private Op03SimpleStatement |
LValueAssignmentExpressionRewriter.source |
Modifier and Type | Method and Description |
---|---|
private boolean |
LValueAssignmentAndAliasCondenser.jumpsMethods(Op03SimpleStatement lvSc,
Op03SimpleStatement statementContainer) |
Constructor and Description |
---|
LValueAssignmentExpressionRewriter(LValue lValue,
AbstractAssignmentExpression lValueReplacement,
Op03SimpleStatement source) |
Modifier and Type | Field and Description |
---|---|
private Op03SimpleStatement |
Result.afterEnd |
private Op03SimpleStatement |
FinallyCatchBody.catchCodeStart |
private Op03SimpleStatement |
PeerTries.possibleFinallyCatch |
private Op03SimpleStatement |
Result.start |
private Op03SimpleStatement |
FinallyCatchBody.throwOp |
Modifier and Type | Field and 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 |
Modifier and Type | Method and 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() |
Modifier and Type | Method and 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() |
Modifier and Type | Method and 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) |
Modifier and Type | Method and 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) |
Constructor and 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 and Description |
---|
FinallyCatchBody(Op03SimpleStatement throwOp,
boolean isEmpty,
Op03SimpleStatement catchCodeStart,
java.util.List<Op03SimpleStatement> body) |
Result(java.util.Set<Op03SimpleStatement> toRemove,
Op03SimpleStatement start,
Op03SimpleStatement afterEnd) |