soot.jimple.toolkits.annotation.nullcheck
Class BranchedRefVarsAnalysis
java.lang.Object
soot.toolkits.scalar.AbstractFlowAnalysis
soot.toolkits.scalar.BranchedFlowAnalysis
soot.toolkits.scalar.ForwardBranchedFlowAnalysis
soot.jimple.toolkits.annotation.nullcheck.BranchedRefVarsAnalysis
- public class BranchedRefVarsAnalysis
- extends ForwardBranchedFlowAnalysis
|
Method Summary |
int |
anyRefInfo(Value r,
FlowSet f)
|
protected void |
copy(Object source,
Object dest)
Creates a copy of the source flow object in dest. |
protected Object |
entryInitialFlow()
Returns the initial flow value for entry/exit graph nodes. |
protected void |
flowThrough(Object inValue,
Unit stmt,
List outFallValue,
List outBranchValues)
Given the merge of the in sets,
compute the fallOut and branchOuts
set for s. |
EquivalentValue |
getEquivalentValue(Value v)
|
RefIntPair |
getKRefIntPair(EquivalentValue r,
int v)
|
protected boolean |
isAlwaysNonNull(Value ro)
|
protected void |
merge(Object in1,
Object in2,
Object out)
Compute the merge of the in1 and in2 sets, putting the result into out. |
protected Object |
newInitialFlow()
Returns the flow object corresponding to the initial values for
each graph node. |
protected int |
refInfo(EquivalentValue r,
FlowSet fs)
|
protected int |
refInfo(Value r,
FlowSet fs)
|
boolean |
treatTrapHandlersAsEntries()
Determines whether entryInitialFlow()
is applied to trap handlers. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
kBottom
public static final int kBottom
- See Also:
- Constant Field Values
kNull
public static final int kNull
- See Also:
- Constant Field Values
kNonNull
public static final int kNonNull
- See Also:
- Constant Field Values
kTop
public static final int kTop
- See Also:
- Constant Field Values
emptySet
protected FlowSet emptySet
fullSet
protected FlowSet fullSet
unitToGenerateSet
protected Map unitToGenerateSet
unitToPreserveSet
protected Map unitToPreserveSet
unitToAnalyzedChecksSet
protected Map unitToAnalyzedChecksSet
unitToArrayRefChecksSet
protected Map unitToArrayRefChecksSet
unitToInstanceFieldRefChecksSet
protected Map unitToInstanceFieldRefChecksSet
unitToInstanceInvokeExprChecksSet
protected Map unitToInstanceInvokeExprChecksSet
unitToLengthExprChecksSet
protected Map unitToLengthExprChecksSet
refTypeLocals
protected List refTypeLocals
refTypeInstFields
protected List refTypeInstFields
refTypeInstFieldBases
protected List refTypeInstFieldBases
refTypeStaticFields
protected List refTypeStaticFields
refTypeValues
protected List refTypeValues
tempFlowSet
protected FlowSet tempFlowSet
BranchedRefVarsAnalysis
public BranchedRefVarsAnalysis(UnitGraph g)
- end of utility methods
getEquivalentValue
public EquivalentValue getEquivalentValue(Value v)
getKRefIntPair
public RefIntPair getKRefIntPair(EquivalentValue r,
int v)
isAlwaysNonNull
protected boolean isAlwaysNonNull(Value ro)
refInfo
protected final int refInfo(EquivalentValue r,
FlowSet fs)
refInfo
protected final int refInfo(Value r,
FlowSet fs)
anyRefInfo
public int anyRefInfo(Value r,
FlowSet f)
flowThrough
protected void flowThrough(Object inValue,
Unit stmt,
List outFallValue,
List outBranchValues)
- Description copied from class:
BranchedFlowAnalysis
- Given the merge of the
in sets,
compute the fallOut and branchOuts
set for s.
- Specified by:
flowThrough in class BranchedFlowAnalysis
merge
protected void merge(Object in1,
Object in2,
Object out)
- Description copied from class:
AbstractFlowAnalysis
- Compute the merge of the
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.
- Specified by:
merge in class AbstractFlowAnalysis
copy
protected void copy(Object source,
Object dest)
- Description copied from class:
AbstractFlowAnalysis
- Creates a copy of the
source flow object in dest.
- Specified by:
copy in class AbstractFlowAnalysis
newInitialFlow
protected Object newInitialFlow()
- Description copied from class:
AbstractFlowAnalysis
- Returns the flow object corresponding to the initial values for
each graph node.
- Specified by:
newInitialFlow in class AbstractFlowAnalysis
entryInitialFlow
protected Object entryInitialFlow()
- Description copied from class:
AbstractFlowAnalysis
- Returns the initial flow value for entry/exit graph nodes.
- Specified by:
entryInitialFlow in class AbstractFlowAnalysis
treatTrapHandlersAsEntries
public boolean treatTrapHandlersAsEntries()
- Description copied from class:
AbstractFlowAnalysis
- Determines whether
entryInitialFlow()
is applied to trap handlers.
- Overrides:
treatTrapHandlersAsEntries in class AbstractFlowAnalysis