|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsoot.toolkits.scalar.AbstractFlowAnalysis<N,A>
soot.toolkits.scalar.BranchedFlowAnalysis<Unit,A>
soot.toolkits.scalar.ForwardBranchedFlowAnalysis
soot.jimple.toolkits.annotation.nullcheck.BranchedRefVarsAnalysis
NullnessAnalysis INSTEAD!
public class BranchedRefVarsAnalysis
| Fields inherited from class soot.toolkits.scalar.BranchedFlowAnalysis |
|---|
unitToAfterBranchFlow, unitToAfterFallFlow |
| Fields inherited from class soot.toolkits.scalar.AbstractFlowAnalysis |
|---|
filterUnitToBeforeFlow, graph, unitToBeforeFlow |
| Constructor Summary | |
|---|---|
BranchedRefVarsAnalysis(UnitGraph g)
Deprecated. THIS IS KNOWN TO BE BUGGY. USE NullnessAnalysis INSTEAD! |
|
| Method Summary | |
|---|---|
int |
anyRefInfo(Value r,
FlowSet f)
Deprecated. |
protected void |
copy(Object source,
Object dest)
Deprecated. Creates a copy of the source flow object in dest. |
protected Object |
entryInitialFlow()
Deprecated. Returns the initial flow value for entry/exit graph nodes. |
protected void |
flowThrough(Object inValue,
Unit stmt,
List outFallValue,
List outBranchValues)
Deprecated. Given the merge of the in sets,
compute the fallOut and branchOuts
set for s. |
EquivalentValue |
getEquivalentValue(Value v)
Deprecated. |
RefIntPair |
getKRefIntPair(EquivalentValue r,
int v)
Deprecated. |
protected boolean |
isAlwaysNonNull(Value ro)
Deprecated. |
protected void |
merge(Object in1,
Object in2,
Object out)
Deprecated. Compute the merge of the in1 and in2 sets, putting the result into out. |
protected Object |
newInitialFlow()
Deprecated. Returns the flow object corresponding to the initial values for each graph node. |
protected int |
refInfo(EquivalentValue r,
FlowSet fs)
Deprecated. |
protected int |
refInfo(Value r,
FlowSet fs)
Deprecated. |
boolean |
treatTrapHandlersAsEntries()
Deprecated. Determines whether entryInitialFlow()
is applied to trap handlers. |
| Methods inherited from class soot.toolkits.scalar.ForwardBranchedFlowAnalysis |
|---|
doAnalysis, isForward |
| Methods inherited from class soot.toolkits.scalar.BranchedFlowAnalysis |
|---|
getBranchFlowAfter, getFallFlowAfter, getFlowBefore |
| Methods inherited from class soot.toolkits.scalar.AbstractFlowAnalysis |
|---|
merge, mergeInto |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int kBottom
public static final int kNull
public static final int kNonNull
public static final int kTop
protected FlowSet emptySet
protected FlowSet fullSet
protected Map<Unit,FlowSet> unitToGenerateSet
protected Map<Unit,FlowSet> unitToPreserveSet
protected Map<Unit,HashSet<Value>> unitToAnalyzedChecksSet
protected Map<Unit,HashSet<Value>> unitToArrayRefChecksSet
protected Map<Unit,HashSet<Value>> unitToInstanceFieldRefChecksSet
protected Map<Unit,HashSet<Value>> unitToInstanceInvokeExprChecksSet
protected Map<Unit,HashSet<Value>> unitToLengthExprChecksSet
protected List<EquivalentValue> refTypeLocals
protected List<EquivalentValue> refTypeInstFields
protected List<EquivalentValue> refTypeInstFieldBases
protected List<EquivalentValue> refTypeStaticFields
protected List<EquivalentValue> refTypeValues
protected FlowSet tempFlowSet
| Constructor Detail |
|---|
public BranchedRefVarsAnalysis(UnitGraph g)
NullnessAnalysis INSTEAD!
| Method Detail |
|---|
public EquivalentValue getEquivalentValue(Value v)
public RefIntPair getKRefIntPair(EquivalentValue r,
int v)
protected boolean isAlwaysNonNull(Value ro)
protected final int refInfo(EquivalentValue r,
FlowSet fs)
protected final int refInfo(Value r,
FlowSet fs)
public int anyRefInfo(Value r,
FlowSet f)
protected void flowThrough(Object inValue,
Unit stmt,
List outFallValue,
List outBranchValues)
BranchedFlowAnalysisin sets,
compute the fallOut and branchOuts
set for s.
flowThrough in class BranchedFlowAnalysis
protected void merge(Object in1,
Object in2,
Object out)
AbstractFlowAnalysisin1 and in2 sets, putting the result into out.
The behavior of this function depends on the implementation ( it may be necessary to check whether
in1 and in2 are equal or aliased ).
Used by the doAnalysis method.
merge in class AbstractFlowAnalysis
protected void copy(Object source,
Object dest)
AbstractFlowAnalysissource flow object in dest.
copy in class AbstractFlowAnalysisprotected Object newInitialFlow()
AbstractFlowAnalysis
newInitialFlow in class AbstractFlowAnalysisprotected Object entryInitialFlow()
AbstractFlowAnalysis
entryInitialFlow in class AbstractFlowAnalysispublic boolean treatTrapHandlersAsEntries()
AbstractFlowAnalysisentryInitialFlow()
is applied to trap handlers.
treatTrapHandlersAsEntries in class AbstractFlowAnalysis
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||