NullnessAnalysis
INSTEAD!@Deprecated public class BranchedRefVarsAnalysis extends ForwardBranchedFlowAnalysis
Modifier and Type | Field and Description |
---|---|
protected FlowSet |
emptySet
Deprecated.
|
protected FlowSet |
fullSet
Deprecated.
|
static int |
kBottom
Deprecated.
|
static int |
kNonNull
Deprecated.
|
static int |
kNull
Deprecated.
|
static int |
kTop
Deprecated.
|
protected List<EquivalentValue> |
refTypeInstFieldBases
Deprecated.
|
protected List<EquivalentValue> |
refTypeInstFields
Deprecated.
|
protected List<EquivalentValue> |
refTypeLocals
Deprecated.
|
protected List<EquivalentValue> |
refTypeStaticFields
Deprecated.
|
protected List<EquivalentValue> |
refTypeValues
Deprecated.
|
protected FlowSet |
tempFlowSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
unitToAnalyzedChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
unitToArrayRefChecksSet
Deprecated.
|
protected Map<Unit,FlowSet> |
unitToGenerateSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
unitToInstanceFieldRefChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
unitToInstanceInvokeExprChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
unitToLengthExprChecksSet
Deprecated.
|
protected Map<Unit,FlowSet> |
unitToPreserveSet
Deprecated.
|
unitToAfterBranchFlow, unitToAfterFallFlow
filterUnitToBeforeFlow, graph, unitToBeforeFlow
Constructor and Description |
---|
BranchedRefVarsAnalysis(UnitGraph g)
Deprecated.
THIS IS KNOWN TO BE BUGGY. USE
NullnessAnalysis INSTEAD! |
Modifier and Type | Method and Description |
---|---|
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. |
doAnalysis, isForward
getBranchFlowAfter, getFallFlowAfter
getFlowBefore, merge, mergeInto
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,HashSet<Value>> unitToInstanceFieldRefChecksSet
protected Map<Unit,HashSet<Value>> unitToInstanceInvokeExprChecksSet
protected List<EquivalentValue> refTypeLocals
protected List<EquivalentValue> refTypeInstFields
protected List<EquivalentValue> refTypeInstFieldBases
protected List<EquivalentValue> refTypeStaticFields
protected List<EquivalentValue> refTypeValues
protected FlowSet tempFlowSet
@Deprecated public BranchedRefVarsAnalysis(UnitGraph g)
NullnessAnalysis
INSTEAD!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 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
AbstractFlowAnalysis.newInitialFlow()
entryInitialFlow
in class AbstractFlowAnalysis
public boolean treatTrapHandlersAsEntries()
AbstractFlowAnalysis
entryInitialFlow()
is applied to trap handlers.treatTrapHandlersAsEntries
in class AbstractFlowAnalysis