Package soot.jimple.toolkits.callgraph
Class ConstantArrayAnalysis
- java.lang.Object
-
- soot.toolkits.scalar.AbstractFlowAnalysis<N,A>
-
- soot.toolkits.scalar.FlowAnalysis<N,A>
-
- soot.toolkits.scalar.ForwardFlowAnalysis<Unit,ConstantArrayAnalysis.ArrayState>
-
- soot.jimple.toolkits.callgraph.ConstantArrayAnalysis
-
public class ConstantArrayAnalysis extends ForwardFlowAnalysis<Unit,ConstantArrayAnalysis.ArrayState>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classConstantArrayAnalysis.ArrayStatestatic classConstantArrayAnalysis.ArrayTypes-
Nested classes/interfaces inherited from class soot.toolkits.scalar.FlowAnalysis
FlowAnalysis.Flow
-
-
Field Summary
-
Fields inherited from class soot.toolkits.scalar.FlowAnalysis
filterUnitToAfterFlow, unitToAfterFlow
-
Fields inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
filterUnitToBeforeFlow, graph, unitToBeforeFlow
-
-
Constructor Summary
Constructors Constructor Description ConstantArrayAnalysis(DirectedGraph<Unit> graph, Body b)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcopy(ConstantArrayAnalysis.ArrayState source, ConstantArrayAnalysis.ArrayState dest)Creates a copy of thesourceflow object indest.protected voidflowThrough(ConstantArrayAnalysis.ArrayState in, Unit d, ConstantArrayAnalysis.ArrayState out)Given the merge of theoutsets, compute theinset fors(or in to out, depending on direction).ConstantArrayAnalysis.ArrayTypesgetArrayTypesBefore(Stmt s, Local arrayLocal)booleanisConstantBefore(Stmt s, Local arrayLocal)protected voidmerge(ConstantArrayAnalysis.ArrayState in1, ConstantArrayAnalysis.ArrayState in2, ConstantArrayAnalysis.ArrayState out)Compute the merge of thein1andin2sets, putting the result intoout.protected ConstantArrayAnalysis.ArrayStatenewInitialFlow()Returns the flow object corresponding to the initial values for each graph node.-
Methods inherited from class soot.toolkits.scalar.ForwardFlowAnalysis
doAnalysis, isForward
-
Methods inherited from class soot.toolkits.scalar.FlowAnalysis
copyFreshToExisting, getFlow, getFlowAfter, getFlowBefore, omissible
-
Methods inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
entryInitialFlow, merge, mergeInto, treatTrapHandlersAsEntries
-
-
-
-
Constructor Detail
-
ConstantArrayAnalysis
public ConstantArrayAnalysis(DirectedGraph<Unit> graph, Body b)
-
-
Method Detail
-
flowThrough
protected void flowThrough(ConstantArrayAnalysis.ArrayState in, Unit d, ConstantArrayAnalysis.ArrayState out)
Description copied from class:FlowAnalysisGiven the merge of theoutsets, compute theinset fors(or in to out, depending on direction). This function often causes confusion, because the same interface is used for both forward and backward flow analyses. The first parameter is always the argument to the flow function (i.e. it is the "in" set in a forward analysis and the "out" set in a backward analysis), and the third parameter is always the result of the flow function (i.e. it is the "out" set in a forward analysis and the "in" set in a backward analysis).- Specified by:
flowThroughin classFlowAnalysis<Unit,ConstantArrayAnalysis.ArrayState>- Parameters:
in- the input flowd- the current nodeout- the returned flow
-
newInitialFlow
protected ConstantArrayAnalysis.ArrayState newInitialFlow()
Description copied from class:AbstractFlowAnalysisReturns the flow object corresponding to the initial values for each graph node.- Specified by:
newInitialFlowin classAbstractFlowAnalysis<Unit,ConstantArrayAnalysis.ArrayState>
-
merge
protected void merge(ConstantArrayAnalysis.ArrayState in1, ConstantArrayAnalysis.ArrayState in2, ConstantArrayAnalysis.ArrayState out)
Description copied from class:AbstractFlowAnalysisCompute the merge of thein1andin2sets, putting the result intoout. The behavior of this function depends on the implementation ( it may be necessary to check whetherin1andin2are equal or aliased ). Used by the doAnalysis method.- Specified by:
mergein classAbstractFlowAnalysis<Unit,ConstantArrayAnalysis.ArrayState>
-
copy
protected void copy(ConstantArrayAnalysis.ArrayState source, ConstantArrayAnalysis.ArrayState dest)
Description copied from class:AbstractFlowAnalysisCreates a copy of thesourceflow object indest.- Specified by:
copyin classAbstractFlowAnalysis<Unit,ConstantArrayAnalysis.ArrayState>
-
getArrayTypesBefore
public ConstantArrayAnalysis.ArrayTypes getArrayTypesBefore(Stmt s, Local arrayLocal)
-
-