Modifier and Type | Method and Description |
---|---|
Stmt |
AugmentedStmt.get_Stmt() |
Stmt |
AugmentedStmt.get_Stmt() |
Modifier and Type | Method and Description |
---|---|
void |
AugmentedStmtGraph.add_StmtBinding(Stmt s,
AugmentedStmt as) |
void |
AugmentedStmtGraph.add_StmtBinding(Stmt s,
AugmentedStmt as) |
AugmentedStmt |
AugmentedStmtGraph.get_AugStmt(Stmt s) |
AugmentedStmt |
AugmentedStmtGraph.get_AugStmt(Stmt s) |
List<AugmentedStmt> |
AugmentedStmtGraph.getPredsOf(Stmt s) |
List<AugmentedStmt> |
AugmentedStmtGraph.getPredsOf(Stmt s) |
List<AugmentedStmt> |
AugmentedStmtGraph.getSuccsOf(Stmt s) |
List<AugmentedStmt> |
AugmentedStmtGraph.getSuccsOf(Stmt s) |
void |
AugmentedStmt.set_Stmt(Stmt s) |
void |
AugmentedStmt.set_Stmt(Stmt s) |
Constructor and Description |
---|
AugmentedStmt(Stmt s) |
AugmentedStmt(Stmt s) |
Modifier and Type | Class and Description |
---|---|
class |
DAbruptStmt |
class |
DAssignStmt |
class |
DDecrementStmt |
class |
DIdentityStmt |
class |
DIncrementStmt |
class |
DShortcutAssignStmt |
class |
DVariableDeclarationStmt |
Modifier and Type | Method and Description |
---|---|
void |
ASTAnalysis.analyseStmt(Stmt s) |
void |
ASTAnalysis.analyseStmt(Stmt s) |
void |
ASTWalker.walk_stmt(ASTAnalysis a,
Stmt s) |
void |
ASTWalker.walk_stmt(ASTAnalysis a,
Stmt s) |
Modifier and Type | Method and Description |
---|---|
void |
Analysis.caseStmt(Stmt s) |
void |
AnalysisAdapter.caseStmt(Stmt s) |
void |
DepthFirstAdapter.caseStmt(Stmt s) |
void |
DepthFirstAdapter.caseStmt(Stmt s) |
void |
AnalysisAdapter.caseStmt(Stmt s) |
void |
Analysis.caseStmt(Stmt s) |
void |
DepthFirstAdapter.inStmt(Stmt s) |
void |
DepthFirstAdapter.inStmt(Stmt s) |
void |
DepthFirstAdapter.outStmt(Stmt s) |
void |
DepthFirstAdapter.outStmt(Stmt s) |
Modifier and Type | Method and Description |
---|---|
DavaFlowSet |
UnreachableCodeFinder.processAbruptStatements(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processAbruptStatements(Stmt s,
DavaFlowSet input) |
DavaFlowSet<E> |
StructuredAnalysis.processAbruptStatements(Stmt s,
DavaFlowSet<E> input)
Whenever a statement has to be processed the first step is to invoke this
method.
|
DavaFlowSet<E> |
StructuredAnalysis.processAbruptStatements(Stmt s,
DavaFlowSet<E> input)
Whenever a statement has to be processed the first step is to invoke this
method.
|
DavaFlowSet |
CP.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
ReachingCopies.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
UnreachableCodeFinder.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
CP.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processStatement(Stmt s,
DavaFlowSet input) |
abstract DavaFlowSet<E> |
StructuredAnalysis.processStatement(Stmt s,
DavaFlowSet<E> input)
Specific stmts within AST Constructs are processed through this method.
|
abstract DavaFlowSet<E> |
StructuredAnalysis.processStatement(Stmt s,
DavaFlowSet<E> input)
Specific stmts within AST Constructs are processed through this method.
|
DavaFlowSet<Stmt> |
ReachingDefs.processStatement(Stmt s,
DavaFlowSet<Stmt> inSet) |
DavaFlowSet<Stmt> |
ReachingDefs.processStatement(Stmt s,
DavaFlowSet<Stmt> inSet) |
Modifier and Type | Method and Description |
---|---|
Stmt |
IfElseSplitter.getLastStmt(List<Object> body) |
Stmt |
IfElseSplitter.getLastStmt(List<Object> body) |
Modifier and Type | Method and Description |
---|---|
boolean |
ShortcutArrayInit.isInSequenceAssignment(Stmt s,
Value leftOp,
int index) |
boolean |
ShortcutArrayInit.isInSequenceAssignment(Stmt s,
Value leftOp,
int index) |
boolean |
ShortcutArrayInit.isInSequenceAssignmentPatternTwo(Stmt one,
Stmt two,
Value leftOp,
int index) |
boolean |
ShortcutArrayInit.isInSequenceAssignmentPatternTwo(Stmt one,
Stmt two,
Value leftOp,
int index) |
boolean |
LocalVariableCleaner.removeStmt(Stmt stmt) |
boolean |
LocalVariableCleaner.removeStmt(Stmt stmt) |
Modifier and Type | Method and Description |
---|---|
void |
ASTUsesAndDefs.checkStatementUses(Stmt s,
Object useNodeOrStatement) |
void |
AllVariableUses.checkStatementUses(Stmt s,
Object useNodeOrStatement) |
void |
ASTUsesAndDefs.checkStatementUses(Stmt s,
Object useNodeOrStatement) |
void |
AllVariableUses.checkStatementUses(Stmt s,
Object useNodeOrStatement) |
void |
ASTParentNodeFinder.inStmt(Stmt s) |
void |
ClosestAbruptTargetFinder.inStmt(Stmt s) |
void |
ClosestAbruptTargetFinder.inStmt(Stmt s) |
void |
ASTParentNodeFinder.inStmt(Stmt s) |
boolean |
CopyPropagation.isCopyStmt(Stmt s) |
boolean |
CopyPropagation.isCopyStmt(Stmt s) |
void |
CopyPropagation.removeStmt(Stmt stmt) |
void |
CopyPropagation.removeStmt(Stmt stmt) |
Modifier and Type | Method and Description |
---|---|
protected Type |
DexTransformer.findArrayType(LocalDefs localDefs,
Stmt arrayStmt,
int depth,
Set<Unit> alreadyVisitedDefs) |
protected Type |
DexTransformer.findArrayType(LocalDefs localDefs,
Stmt arrayStmt,
int depth,
Set<Unit> alreadyVisitedDefs) |
Modifier and Type | Method and Description |
---|---|
protected Stmt |
PackedSwitchInstruction.switchStatement(DexBody body,
Instruction targetData,
Local key) |
protected Stmt |
SparseSwitchInstruction.switchStatement(DexBody body,
Instruction targetData,
Local key) |
protected abstract Stmt |
SwitchInstruction.switchStatement(DexBody body,
Instruction targetData,
Local key)
Return a switch statement based on given target data on the given key.
|
protected Stmt |
SparseSwitchInstruction.switchStatement(DexBody body,
Instruction targetData,
Local key) |
protected Stmt |
PackedSwitchInstruction.switchStatement(DexBody body,
Instruction targetData,
Local key) |
protected abstract Stmt |
SwitchInstruction.switchStatement(DexBody body,
Instruction targetData,
Local key)
Return a switch statement based on given target data on the given key.
|
Modifier and Type | Class and Description |
---|---|
class |
GAssignStmt |
class |
GEnterMonitorStmt |
class |
GExitMonitorStmt |
class |
GIdentityStmt |
class |
GIfStmt |
class |
GInvokeStmt |
class |
GLookupSwitchStmt |
class |
GReturnStmt |
class |
GTableSwitchStmt |
class |
GThrowStmt |
Modifier and Type | Field and Description |
---|---|
protected List<List<Stmt>> |
JimpleBodyBuilder.afterReturn |
protected List<List<Stmt>> |
JimpleBodyBuilder.afterReturn |
protected List<List<Stmt>> |
JimpleBodyBuilder.beforeReturn |
protected List<List<Stmt>> |
JimpleBodyBuilder.beforeReturn |
protected Stack<Stmt> |
JimpleBodyBuilder.condControlNoop |
protected Stack<Stmt> |
JimpleBodyBuilder.condControlNoop |
protected Stack<Stmt> |
JimpleBodyBuilder.endControlNoop |
protected Stack<Stmt> |
JimpleBodyBuilder.endControlNoop |
protected Stack<Stmt> |
JimpleBodyBuilder.falseNoop |
protected Stack<Stmt> |
JimpleBodyBuilder.falseNoop |
protected HashMap<String,Stmt> |
JimpleBodyBuilder.labelBreakMap |
protected HashMap<String,Stmt> |
JimpleBodyBuilder.labelBreakMap |
protected HashMap<String,Stmt> |
JimpleBodyBuilder.labelContinueMap |
protected HashMap<String,Stmt> |
JimpleBodyBuilder.labelContinueMap |
protected HashMap<polyglot.ast.Stmt,Stmt> |
JimpleBodyBuilder.labelMap |
protected HashMap<polyglot.ast.Stmt,Stmt> |
JimpleBodyBuilder.labelMap |
protected Stack<Stmt> |
JimpleBodyBuilder.trueNoop |
protected Stack<Stmt> |
JimpleBodyBuilder.trueNoop |
Modifier and Type | Interface and Description |
---|---|
interface |
AssignStmt |
interface |
BreakpointStmt |
interface |
DefinitionStmt |
interface |
EnterMonitorStmt |
interface |
ExitMonitorStmt |
interface |
GotoStmt |
interface |
IdentityStmt |
interface |
IfStmt |
interface |
InvokeStmt |
interface |
LookupSwitchStmt |
interface |
MonitorStmt |
interface |
NopStmt |
interface |
RetStmt |
interface |
ReturnStmt |
interface |
ReturnVoidStmt |
interface |
SwitchStmt |
interface |
TableSwitchStmt |
interface |
ThrowStmt |
Modifier and Type | Class and Description |
---|---|
class |
PlaceholderStmt |
Modifier and Type | Method and Description |
---|---|
Stmt |
JimpleBody.getFirstNonIdentityStmt()
Returns the first non-identity stmt in this body.
|
Stmt |
JimpleBody.getFirstNonIdentityStmt()
Returns the first non-identity stmt in this body.
|
Stmt |
IfStmt.getTarget() |
Stmt |
IfStmt.getTarget() |
Modifier and Type | Method and Description |
---|---|
protected void |
PointerStmtSwitch.caseUninterestingStmt(Stmt s)
Any other statement
|
protected void |
PointerStmtSwitch.caseUninterestingStmt(Stmt s)
Any other statement
|
List |
EqualLocals.getCopiesAt(Stmt s) |
List |
EqualLocals.getCopiesAt(Stmt s) |
boolean |
EqualLocals.isLocalEqualToAt(Local l1,
Local l2,
Stmt s) |
boolean |
EqualLocals.isLocalEqualToAt(Local l1,
Local l2,
Stmt s) |
Constructor and Description |
---|
LocalStmtPair(Local local,
Stmt stmt) |
LocalStmtPair(Local local,
Stmt stmt) |
Modifier and Type | Class and Description |
---|---|
class |
AbstractDefinitionStmt |
class |
AbstractOpStmt |
class |
AbstractStmt |
class |
AbstractSwitchStmt |
class |
JAssignStmt |
class |
JBreakpointStmt |
class |
JEnterMonitorStmt |
class |
JExitMonitorStmt |
class |
JGotoStmt |
class |
JIdentityStmt |
class |
JIfStmt |
class |
JInvokeStmt |
class |
JLookupSwitchStmt |
class |
JNopStmt |
class |
JRetStmt |
class |
JReturnStmt |
class |
JReturnVoidStmt |
class |
JTableSwitchStmt |
class |
JThrowStmt |
Modifier and Type | Method and Description |
---|---|
Stmt |
JIfStmt.getTarget() |
Stmt |
JIfStmt.getTarget() |
Constructor and Description |
---|
StmtBox(Stmt s) |
StmtBox(Stmt s) |
Modifier and Type | Method and Description |
---|---|
void |
MethodNodeFactory.handleStmt(Stmt s)
Adds the edges required for this statement to the graph.
|
void |
MethodNodeFactory.handleStmt(Stmt s)
Adds the edges required for this statement to the graph.
|
Modifier and Type | Field and Description |
---|---|
Set<Stmt> |
GeomPointsTo.multiCallsites |
Set<Stmt> |
GeomPointsTo.multiCallsites |
Set<Stmt> |
GeomPointsTo.thread_run_callsites |
Set<Stmt> |
GeomPointsTo.thread_run_callsites |
Modifier and Type | Method and Description |
---|---|
static int |
SootInfo.countCallEdgesForCallsite(Stmt callsite,
boolean stopForMutiple) |
static int |
SootInfo.countCallEdgesForCallsite(Stmt callsite,
boolean stopForMutiple) |
Modifier and Type | Method and Description |
---|---|
void |
PAG.addCallTarget(MethodPAG srcmpag,
MethodPAG tgtmpag,
Stmt s,
Context srcContext,
Context tgtContext,
Edge e)
Adds method target as a possible target of the invoke expression in s.
|
void |
PAG.addCallTarget(MethodPAG srcmpag,
MethodPAG tgtmpag,
Stmt s,
Context srcContext,
Context tgtContext,
Edge e)
Adds method target as a possible target of the invoke expression in s.
|
Modifier and Type | Method and Description |
---|---|
protected int |
ArrayBoundsChecker.interpretGraph(soot.jimple.toolkits.annotation.arraycheck.WeightedDirectedSparseGraph vgraph,
ArrayRef aref,
Stmt stmt,
soot.jimple.toolkits.annotation.arraycheck.IntContainer zero) |
protected int |
ArrayBoundsChecker.interpretGraph(soot.jimple.toolkits.annotation.arraycheck.WeightedDirectedSparseGraph vgraph,
ArrayRef aref,
Stmt stmt,
soot.jimple.toolkits.annotation.arraycheck.IntContainer zero) |
Modifier and Type | Field and Description |
---|---|
protected Stmt |
Loop.backJump |
protected Stmt |
Loop.backJump |
protected Stmt |
Loop.header |
protected Stmt |
Loop.header |
Modifier and Type | Field and Description |
---|---|
protected Collection<Stmt> |
Loop.loopExists |
protected Collection<Stmt> |
Loop.loopExists |
protected List<Stmt> |
Loop.loopStatements |
protected List<Stmt> |
Loop.loopStatements |
Modifier and Type | Method and Description |
---|---|
Stmt |
Loop.getBackJumpStmt()
Returns the statement that jumps back to the head, thereby constituing the loop.
|
Stmt |
Loop.getBackJumpStmt()
Returns the statement that jumps back to the head, thereby constituing the loop.
|
Stmt |
Loop.getHead() |
Stmt |
Loop.getHead() |
Modifier and Type | Method and Description |
---|---|
Collection<Stmt> |
Loop.getLoopExits()
Returns all loop exists.
|
Collection<Stmt> |
Loop.getLoopExits()
Returns all loop exists.
|
List<Stmt> |
Loop.getLoopStatements() |
List<Stmt> |
Loop.getLoopStatements() |
Collection<Stmt> |
Loop.targetsOfLoopExit(Stmt loopExit)
Computes all targets of the given loop exit, i.e.
|
Collection<Stmt> |
Loop.targetsOfLoopExit(Stmt loopExit)
Computes all targets of the given loop exit, i.e.
|
Modifier and Type | Method and Description |
---|---|
Collection<Stmt> |
Loop.targetsOfLoopExit(Stmt loopExit)
Computes all targets of the given loop exit, i.e.
|
Collection<Stmt> |
Loop.targetsOfLoopExit(Stmt loopExit)
Computes all targets of the given loop exit, i.e.
|
Modifier and Type | Method and Description |
---|---|
protected void |
AbstractInterproceduralAnalysis.analyseCall(Object src,
Stmt callStmt,
Object dst)
Analyse the call callStmt in the context src, and put the resul into
dst.
|
protected void |
AbstractInterproceduralAnalysis.analyseCall(Object src,
Stmt callStmt,
Object dst)
Analyse the call callStmt in the context src, and put the resul into
dst.
|
protected abstract void |
AbstractInterproceduralAnalysis.applySummary(Object src,
Stmt callStmt,
Object summary,
Object dst)
Interprocedural analysis will call applySummary repeatedly as a
consequence to analyseCall.
|
protected void |
PurityInterproceduralAnalysis.applySummary(Object src,
Stmt stmt,
Object summary,
Object dst) |
protected void |
PurityInterproceduralAnalysis.applySummary(Object src,
Stmt stmt,
Object summary,
Object dst) |
protected abstract void |
AbstractInterproceduralAnalysis.applySummary(Object src,
Stmt callStmt,
Object summary,
Object dst)
Interprocedural analysis will call applySummary repeatedly as a
consequence to analyseCall.
|
Modifier and Type | Method and Description |
---|---|
Stmt |
ExceptionCheckerError.throwing() |
Stmt |
ExceptionCheckerError.throwing() |
Modifier and Type | Method and Description |
---|---|
protected void |
ExceptionChecker.checkInvokeExpr(Body b,
InvokeExpr ie,
Stmt s) |
protected void |
ExceptionChecker.checkInvokeExpr(Body b,
InvokeExpr ie,
Stmt s) |
protected boolean |
ExceptionChecker.isExceptionCaught(Body b,
Stmt s,
RefType throwType) |
protected boolean |
ExceptionChecker.isExceptionCaught(Body b,
Stmt s,
RefType throwType) |
protected boolean |
ExceptionChecker.isThrowInStmtRange(Body b,
Stmt begin,
Stmt end,
Stmt s) |
protected boolean |
ExceptionChecker.isThrowInStmtRange(Body b,
Stmt begin,
Stmt end,
Stmt s) |
void |
ExceptionCheckerError.throwing(Stmt s) |
void |
ExceptionCheckerError.throwing(Stmt s) |
Constructor and Description |
---|
ExceptionCheckerError(SootMethod m,
SootClass sc,
Stmt s,
SourceLnPosTag pos) |
ExceptionCheckerError(SootMethod m,
SootClass sc,
Stmt s,
SourceLnPosTag pos) |
Modifier and Type | Method and Description |
---|---|
Stmt |
ContextSensitiveEdge.srcStmt() |
Stmt |
Edge.srcStmt() |
Stmt |
Edge.srcStmt() |
Stmt |
ContextSensitiveEdge.srcStmt() |
Stmt |
InvokeCallSite.stmt() |
Stmt |
VirtualCallSite.stmt() |
Stmt |
InvokeCallSite.stmt() |
Stmt |
VirtualCallSite.stmt() |
Modifier and Type | Method and Description |
---|---|
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.classForName(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.classForName(SootMethod container,
Stmt forNameInvokeStmt)
Adds an edge to all class initializers of all possible receivers
of Class.forName() calls within source.
|
void |
ReflectionModel.classForName(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.classForName(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.classForName(SootMethod container,
Stmt forNameInvokeStmt)
Adds an edge to all class initializers of all possible receivers
of Class.forName() calls within source.
|
void |
ReflectionModel.classForName(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.classNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.classNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds an edge to the constructor of the target class from this call to
Class.newInstance() . |
void |
ReflectionModel.classNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.classNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.classNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds an edge to the constructor of the target class from this call to
Class.newInstance() . |
void |
ReflectionModel.classNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.contructorNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.contructorNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds a special edge of kind
Kind.REFL_CONSTR_NEWINSTANCE to all possible target constructors
of this call to Constructor.newInstance(Object...) . |
void |
ReflectionModel.contructorNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.contructorNewInstance(SootMethod source,
Stmt s) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.contructorNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds a special edge of kind
Kind.REFL_CONSTR_NEWINSTANCE to all possible target constructors
of this call to Constructor.newInstance(Object...) . |
void |
ReflectionModel.contructorNewInstance(SootMethod source,
Stmt s) |
ConstantArrayAnalysis.ArrayTypes |
ConstantArrayAnalysis.getArrayTypesBefore(Stmt s,
Local arrayLocal) |
ConstantArrayAnalysis.ArrayTypes |
ConstantArrayAnalysis.getArrayTypesBefore(Stmt s,
Local arrayLocal) |
boolean |
ConstantArrayAnalysis.isConstantBefore(Stmt s,
Local arrayLocal) |
boolean |
ConstantArrayAnalysis.isConstantBefore(Stmt s,
Local arrayLocal) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
void |
OnFlyCallGraphBuilder.TypeBasedReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt)
Adds a special edge of kind
Kind.REFL_INVOKE to all possible target methods
of this call to Method.invoke(Object, Object...) . |
void |
ReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
void |
OnFlyCallGraphBuilder.DefaultReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
void |
OnFlyCallGraphBuilder.TypeBasedReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
void |
OnFlyCallGraphBuilder.TraceBasedReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt)
Adds a special edge of kind
Kind.REFL_INVOKE to all possible target methods
of this call to Method.invoke(Object, Object...) . |
void |
ReflectionModel.methodInvoke(SootMethod container,
Stmt invokeStmt) |
boolean |
CallGraph.swapEdgesOutOf(Stmt out,
Stmt in)
Swaps an invocation statement.
|
boolean |
CallGraph.swapEdgesOutOf(Stmt out,
Stmt in)
Swaps an invocation statement.
|
Modifier and Type | Method and Description |
---|---|
protected void |
SmartMethodInfoFlowAnalysis.addFlowToCdfg(Stmt stmt) |
protected void |
SmartMethodInfoFlowAnalysis.addFlowToCdfg(Stmt stmt) |
protected HashMutableDirectedGraph<EquivalentValue> |
InfoFlowAnalysis.getInvokeInfoFlowSummary(InvokeExpr ie,
Stmt is,
SootMethod context) |
protected HashMutableDirectedGraph<EquivalentValue> |
InfoFlowAnalysis.getInvokeInfoFlowSummary(InvokeExpr ie,
Stmt is,
SootMethod context) |
protected List<Value> |
SmartMethodInfoFlowAnalysis.handleInvokeExpr(InvokeExpr ie,
Stmt is) |
protected List<Value> |
SmartMethodInfoFlowAnalysis.handleInvokeExpr(InvokeExpr ie,
Stmt is) |
protected List<Value> |
SimpleMethodInfoFlowAnalysis.handleInvokeExpr(InvokeExpr ie,
Stmt is,
FlowSet<Pair<EquivalentValue,EquivalentValue>> fs) |
protected List<Value> |
SimpleMethodInfoFlowAnalysis.handleInvokeExpr(InvokeExpr ie,
Stmt is,
FlowSet<Pair<EquivalentValue,EquivalentValue>> fs) |
Modifier and Type | Method and Description |
---|---|
static Stmt |
ThrowManager.getNullPointerExceptionThrower(JimpleBody b)
Iterate through the statements in b (starting at the end), returning
the last instance of the following pattern:
r928 = new java.lang.NullPointerException;
specialinvoke r928."
|
static Stmt |
ThrowManager.getNullPointerExceptionThrower(JimpleBody b)
Iterate through the statements in b (starting at the end), returning
the last instance of the following pattern:
r928 = new java.lang.NullPointerException;
specialinvoke r928."
|
Modifier and Type | Method and Description |
---|---|
Local |
SynchronizerManager.addStmtsToFetchClassBefore(JimpleBody jb,
Stmt target)
Adds code to fetch the static Class object to the given JimpleBody
before the target Stmt.
|
Local |
SynchronizerManager.addStmtsToFetchClassBefore(JimpleBody jb,
Stmt target)
Adds code to fetch the static Class object to the given JimpleBody
before the target Stmt.
|
static void |
AccessManager.createAccessorMethod(SootMethod container,
Stmt stmt)
Turns a field access or method call into a call to an accessor method.
|
static void |
AccessManager.createAccessorMethod(SootMethod container,
Stmt stmt)
Turns a field access or method call into a call to an accessor method.
|
static void |
AccessManager.createAccessorMethods(Body body,
Stmt before,
Stmt after)
Resolves illegal accesses in the interval ]before,after[
by creating accessor methods.
|
static void |
AccessManager.createAccessorMethods(Body body,
Stmt before,
Stmt after)
Resolves illegal accesses in the interval ]before,after[
by creating accessor methods.
|
static boolean |
InlinerSafetyManager.ensureInlinability(SootMethod target,
Stmt toInline,
SootMethod container,
String modifierOptions)
Returns true if this method can be inlined at the given site.
|
static boolean |
InlinerSafetyManager.ensureInlinability(SootMethod target,
Stmt toInline,
SootMethod container,
String modifierOptions)
Returns true if this method can be inlined at the given site.
|
static void |
SiteInliner.inlineSite(SootMethod inlinee,
Stmt toInline,
SootMethod container)
Inlines the method
inlinee into the container
at the point toInline . |
static void |
SiteInliner.inlineSite(SootMethod inlinee,
Stmt toInline,
SootMethod container)
Inlines the method
inlinee into the container
at the point toInline . |
static List |
SiteInliner.inlineSite(SootMethod inlinee,
Stmt toInline,
SootMethod container,
Map options)
Inlines the given site.
|
static List |
SiteInliner.inlineSite(SootMethod inlinee,
Stmt toInline,
SootMethod container,
Map options)
Inlines the given site.
|
static boolean |
AccessManager.isAccessLegal(SootMethod container,
Stmt stmt)
Returns true if the statement
stmt contains an illegal access to a field or method,
assuming the statement is in method container |
static boolean |
AccessManager.isAccessLegal(SootMethod container,
Stmt stmt)
Returns true if the statement
stmt contains an illegal access to a field or method,
assuming the statement is in method container |
void |
SynchronizerManager.synchronizeStmtOn(Stmt stmt,
JimpleBody b,
Local lock)
Wraps stmt around a monitor associated with local lock.
|
void |
SynchronizerManager.synchronizeStmtOn(Stmt stmt,
JimpleBody b,
Local lock)
Wraps stmt around a monitor associated with local lock.
|
Modifier and Type | Field and Description |
---|---|
protected Stmt |
InstanceKey.stmtAfterAssignStmt |
protected Stmt |
InstanceKey.stmtAfterAssignStmt |
Modifier and Type | Method and Description |
---|---|
Stmt |
InstanceKey.getStmt() |
Stmt |
InstanceKey.getStmt() |
Modifier and Type | Method and Description |
---|---|
protected RWSet |
SideEffectAnalysis.addValue(Value v,
SootMethod m,
Stmt s) |
protected RWSet |
SideEffectAnalysis.addValue(Value v,
SootMethod m,
Stmt s) |
RefType |
LocalMustNotAliasAnalysis.concreteType(Local l,
Stmt s)
If the given local at the given statement was initialized with a single, concrete new-expression
then the type of this expression is returned.
|
RefType |
LocalMustNotAliasAnalysis.concreteType(Local l,
Stmt s)
If the given local at the given statement was initialized with a single, concrete new-expression
then the type of this expression is returned.
|
boolean |
LocalMustAliasAnalysis.hasInfoOn(Local l,
Stmt s)
Returns true if this analysis has any information about local l
at statement s.
|
boolean |
LocalMustNotAliasAnalysis.hasInfoOn(Local l,
Stmt s)
Returns true if this analysis has any information about local l
at statement s (i.e.
|
boolean |
LocalMustAliasAnalysis.hasInfoOn(Local l,
Stmt s)
Returns true if this analysis has any information about local l
at statement s.
|
boolean |
LocalMustNotAliasAnalysis.hasInfoOn(Local l,
Stmt s)
Returns true if this analysis has any information about local l
at statement s (i.e.
|
String |
LocalMustAliasAnalysis.instanceKeyString(Local l,
Stmt s)
Returns a string (natural number) representation of the instance key associated with l
at statement s or
null if there is no such key associated. |
String |
StrongLocalMustAliasAnalysis.instanceKeyString(Local l,
Stmt s)
Returns a string (natural number) representation of the instance key associated with l
at statement s or
null if there is no such key associated. |
String |
LocalMustAliasAnalysis.instanceKeyString(Local l,
Stmt s)
Returns a string (natural number) representation of the instance key associated with l
at statement s or
null if there is no such key associated. |
String |
StrongLocalMustAliasAnalysis.instanceKeyString(Local l,
Stmt s)
Returns a string (natural number) representation of the instance key associated with l
at statement s or
null if there is no such key associated. |
protected Object |
FieldRWTagger.keyFor(Stmt s) |
protected Object |
SideEffectTagger.keyFor(Stmt s) |
protected Object |
SideEffectTagger.keyFor(Stmt s) |
protected Object |
FieldRWTagger.keyFor(Stmt s) |
boolean |
LocalMustAliasAnalysis.mustAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
boolean |
StrongLocalMustAliasAnalysis.mustAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
boolean |
LocalMustAliasAnalysis.mustAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
boolean |
StrongLocalMustAliasAnalysis.mustAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
boolean |
LocalMustNotAliasAnalysis.notMayAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
boolean |
LocalMustNotAliasAnalysis.notMayAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
RWSet |
SideEffectAnalysis.readSet(SootMethod method,
Stmt stmt) |
RWSet |
SideEffectAnalysis.readSet(SootMethod method,
Stmt stmt) |
RWSet |
SideEffectAnalysis.writeSet(SootMethod method,
Stmt stmt) |
RWSet |
SideEffectAnalysis.writeSet(SootMethod method,
Stmt stmt) |
Constructor and Description |
---|
InstanceKey(Local local,
Stmt stmt,
SootMethod owner,
LocalMustAliasAnalysis lmaa,
LocalMustNotAliasAnalysis lmna)
Creates a new instance key representing the value stored in local, just before
stmt.
|
InstanceKey(Local local,
Stmt stmt,
SootMethod owner,
LocalMustAliasAnalysis lmaa,
LocalMustNotAliasAnalysis lmna)
Creates a new instance key representing the value stored in local, just before
stmt.
|
Modifier and Type | Method and Description |
---|---|
Map<Stmt,List> |
EqualUsesAnalysis.getFirstUseToAliasSet()
Deprecated.
|
Map<Stmt,List> |
EqualUsesAnalysis.getFirstUseToAliasSet()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
boolean |
EqualUsesAnalysis.areEqualUses(Stmt firstStmt,
Local firstLocal,
Stmt secondStmt,
Local secondLocal)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(Stmt firstStmt,
Local firstLocal,
Stmt secondStmt,
Local secondLocal)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(Stmt firstStmt,
Local firstLocal,
Stmt secondStmt,
Local secondLocal,
List boundaryStmts)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(Stmt firstStmt,
Local firstLocal,
Stmt secondStmt,
Local secondLocal,
List boundaryStmts)
Deprecated.
|
List |
CommonPrecedingEqualValueAnalysis.getCommonAncestorValuesOf(Map unitToAliasSet,
Stmt s)
Returns a list of EquivalentLocals that must always be equal to l at s
|
List |
CommonPrecedingEqualValueAnalysis.getCommonAncestorValuesOf(Map unitToAliasSet,
Stmt s)
Returns a list of EquivalentLocals that must always be equal to l at s
|
List |
EqualLocalsAnalysis.getCopiesOfAt(Local l,
Stmt s)
Returns a list of EquivalentValue wrapped Locals and Refs that must always be equal to l at s
|
List |
EqualLocalsAnalysis.getCopiesOfAt(Local l,
Stmt s)
Returns a list of EquivalentValue wrapped Locals and Refs that must always be equal to l at s
|
Modifier and Type | Method and Description |
---|---|
boolean |
EqualUsesAnalysis.areEqualUses(Map<Stmt,Local> stmtToLocal)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(Map<Stmt,Local> stmtToLocal)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(Map<Stmt,Local> stmtToLocal,
List boundaryStmts)
Deprecated.
|
boolean |
EqualUsesAnalysis.areEqualUses(Map<Stmt,Local> stmtToLocal,
List boundaryStmts)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
void |
AbstractRuntimeThread.setJoinStmt(Stmt joinStmt) |
void |
AbstractRuntimeThread.setJoinStmt(Stmt joinStmt) |
void |
AbstractRuntimeThread.setStartStmt(Stmt startStmt) |
void |
AbstractRuntimeThread.setStartStmt(Stmt startStmt) |
Modifier and Type | Field and Description |
---|---|
Stmt |
SynchronizedRegion.after |
Stmt |
SynchronizedRegion.after |
Stmt |
SynchronizedRegion.beginning |
Stmt |
SynchronizedRegion.beginning |
Stmt |
SynchronizedRegion.entermonitor |
Stmt |
SynchronizedRegion.entermonitor |
Stmt |
SynchronizedRegion.last |
Stmt |
SynchronizedRegion.last |
Stmt |
SynchronizedRegion.prepStmt |
Stmt |
SynchronizedRegion.prepStmt |
Modifier and Type | Field and Description |
---|---|
List<Pair<Stmt,Stmt>> |
SynchronizedRegion.earlyEnds |
List<Pair<Stmt,Stmt>> |
SynchronizedRegion.earlyEnds |
List<Pair<Stmt,Stmt>> |
SynchronizedRegion.earlyEnds |
List<Pair<Stmt,Stmt>> |
SynchronizedRegion.earlyEnds |
Pair<Stmt,Stmt> |
SynchronizedRegion.end |
Pair<Stmt,Stmt> |
SynchronizedRegion.end |
Pair<Stmt,Stmt> |
SynchronizedRegion.end |
Pair<Stmt,Stmt> |
SynchronizedRegion.end |
Pair<Stmt,Stmt> |
SynchronizedRegion.exceptionalEnd |
Pair<Stmt,Stmt> |
SynchronizedRegion.exceptionalEnd |
Pair<Stmt,Stmt> |
SynchronizedRegion.exceptionalEnd |
Pair<Stmt,Stmt> |
SynchronizedRegion.exceptionalEnd |
Modifier and Type | Method and Description |
---|---|
Integer |
LockableReferenceAnalysis.addFromSubanalysis(soot.jimple.toolkits.thread.synchronization.LocksetFlowInfo outInfo,
LockableReferenceAnalysis la,
Stmt stmt,
Value lock) |
Integer |
LockableReferenceAnalysis.addFromSubanalysis(soot.jimple.toolkits.thread.synchronization.LocksetFlowInfo outInfo,
LockableReferenceAnalysis la,
Stmt stmt,
Value lock) |
protected RWSet |
CriticalSectionAwareSideEffectAnalysis.addValue(Value v,
SootMethod m,
Stmt s) |
protected RWSet |
CriticalSectionAwareSideEffectAnalysis.addValue(Value v,
SootMethod m,
Stmt s) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.approximatedReadSet(SootMethod method,
Stmt stmt,
Value specialRead,
boolean allFields) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.approximatedReadSet(SootMethod method,
Stmt stmt,
Value specialRead,
boolean allFields) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.approximatedWriteSet(SootMethod method,
Stmt stmt,
Value v,
boolean allFields) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.approximatedWriteSet(SootMethod method,
Stmt stmt,
Value v,
boolean allFields) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.readSet(SootMethod method,
Stmt stmt,
soot.jimple.toolkits.thread.synchronization.CriticalSection tn,
Set uses) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.readSet(SootMethod method,
Stmt stmt,
soot.jimple.toolkits.thread.synchronization.CriticalSection tn,
Set uses) |
InstanceFieldRef |
LockAllocationBodyTransformer.reconstruct(Body b,
PatchingChain<Unit> units,
InstanceFieldRef lock,
Stmt insertBefore,
boolean redirect) |
InstanceFieldRef |
LockAllocationBodyTransformer.reconstruct(Body b,
PatchingChain<Unit> units,
InstanceFieldRef lock,
Stmt insertBefore,
boolean redirect) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.valueRWSet(Value v,
SootMethod m,
Stmt s,
soot.jimple.toolkits.thread.synchronization.CriticalSection tn) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.valueRWSet(Value v,
SootMethod m,
Stmt s,
soot.jimple.toolkits.thread.synchronization.CriticalSection tn) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.writeSet(SootMethod method,
Stmt stmt,
soot.jimple.toolkits.thread.synchronization.CriticalSection tn,
Set uses) |
RWSet |
CriticalSectionAwareSideEffectAnalysis.writeSet(SootMethod method,
Stmt stmt,
soot.jimple.toolkits.thread.synchronization.CriticalSection tn,
Set uses) |
Modifier and Type | Method and Description |
---|---|
static Unit |
Util.findFirstNonIdentityUnit(Body b,
Stmt s)
Returns the first statement after all the "identity statements".
|
static Unit |
Util.findFirstNonIdentityUnit(Body b,
Stmt s)
Returns the first statement after all the "identity statements".
|
static Unit |
Util.findLastIdentityUnit(Body b,
Stmt s)
A new "normal" statement cannot be inserted in the middle of special
"identity statements" (a = @parameter or b = @this in Jimple).
|
static Unit |
Util.findLastIdentityUnit(Body b,
Stmt s)
A new "normal" statement cannot be inserted in the middle of special
"identity statements" (a = @parameter or b = @this in Jimple).
|
Modifier and Type | Method and Description |
---|---|
void |
UseChecker.defaultCase(Stmt stmt) |
void |
UseChecker.defaultCase(Stmt stmt) |
static Type |
AugEvalFunction.eval_(Typing tg,
Value expr,
Stmt stmt,
JimpleBody jb) |
static Type |
AugEvalFunction.eval_(Typing tg,
Value expr,
Stmt stmt,
JimpleBody jb) |
Collection<Type> |
AugEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
Collection<Type> |
IEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
Collection<Type> |
AugEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
Collection<Type> |
IEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
Value |
IUseVisitor.visit(Value op,
Type useType,
Stmt stmt) |
Value |
IUseVisitor.visit(Value op,
Type useType,
Stmt stmt) |
Modifier and Type | Method and Description |
---|---|
protected void |
ValueGraph.handleStmt(Stmt stmt) |
protected void |
ValueGraph.handleStmt(Stmt stmt) |
Modifier and Type | Method and Description |
---|---|
protected void |
SConstantPropagatorAndFolder.replaceStmts(Map<Stmt,GotoStmt> stmtsToReplace)
Replaces conditional branches by unconditional branches as
given by the mapping.
|
protected void |
SConstantPropagatorAndFolder.replaceStmts(Map<Stmt,GotoStmt> stmtsToReplace)
Replaces conditional branches by unconditional branches as
given by the mapping.
|
Modifier and Type | Method and Description |
---|---|
Label |
LabelAssigner.getLabel(Stmt stmt) |
Label |
LabelAssigner.getLabel(Stmt stmt) |
String |
LabelAssigner.getLabelName(Stmt stmt) |
String |
LabelAssigner.getLabelName(Stmt stmt) |
Label |
LabelAssigner.getLabelUnsafe(Stmt stmt) |
Label |
LabelAssigner.getLabelUnsafe(Stmt stmt) |
Label |
LabelAssigner.getOrCreateLabel(Stmt stmt) |
Label |
LabelAssigner.getOrCreateLabel(Stmt stmt) |
Modifier and Type | Field and Description |
---|---|
protected Stmt |
InsnWithOffset.target |
protected Stmt |
InsnWithOffset.target |
Modifier and Type | Method and Description |
---|---|
Stmt |
InsnWithOffset.getTarget() |
Stmt |
InsnWithOffset.getTarget() |
Modifier and Type | Method and Description |
---|---|
void |
InsnWithOffset.setTarget(Stmt target) |
void |
InsnWithOffset.setTarget(Stmt target) |
Modifier and Type | Method and Description |
---|---|
boolean |
DominatorAnalysis.dominates(Stmt s,
Stmt t)
Deprecated.
Returns true if s post-dominates t.
|
boolean |
DominatorAnalysis.dominates(Stmt s,
Stmt t)
Deprecated.
Returns true if s post-dominates t.
|
boolean |
PostDominatorAnalysis.postDominates(Stmt s,
Stmt t)
Deprecated.
Returns true if s post-dominates t.
|
boolean |
PostDominatorAnalysis.postDominates(Stmt s,
Stmt t)
Deprecated.
Returns true if s post-dominates t.
|