|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object soot.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)
BranchedFlowAnalysis
in
sets,
compute the fallOut
and branchOuts
set for s
.
flowThrough
in class BranchedFlowAnalysis
protected void merge(Object in1, Object in2, Object out)
AbstractFlowAnalysis
in1
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)
AbstractFlowAnalysis
source
flow object in dest
.
copy
in class AbstractFlowAnalysis
protected Object newInitialFlow()
AbstractFlowAnalysis
newInitialFlow
in class AbstractFlowAnalysis
protected Object entryInitialFlow()
AbstractFlowAnalysis
entryInitialFlow
in class AbstractFlowAnalysis
public boolean treatTrapHandlersAsEntries()
AbstractFlowAnalysis
entryInitialFlow()
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 |