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 |
protected int |
anyRefInfo(Value r,
FlowSet f)
|
protected void |
copy(java.lang.Object source,
java.lang.Object dest)
Creates a copy of the source flow object in dest . |
protected java.lang.Object |
entryInitialFlow()
Returns the initial flow value for entry/exit graph nodes. |
protected void |
flowThrough(java.lang.Object inValue,
Unit stmt,
java.util.List outFallValue,
java.util.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 void |
merge(java.lang.Object in1,
java.lang.Object in2,
java.lang.Object out)
Compute the merge of the in1 and in2 sets, putting the result into out . |
protected java.lang.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
protected final int kBottom
kNull
protected final int kNull
kNonNull
protected final int kNonNull
kTop
protected final int kTop
emptySet
protected FlowSet emptySet
fullSet
protected FlowSet fullSet
unitToGenerateSet
protected java.util.Map unitToGenerateSet
unitToPreserveSet
protected java.util.Map unitToPreserveSet
unitToAnalyzedChecksSet
protected java.util.Map unitToAnalyzedChecksSet
unitToArrayRefChecksSet
protected java.util.Map unitToArrayRefChecksSet
unitToInstanceFieldRefChecksSet
protected java.util.Map unitToInstanceFieldRefChecksSet
unitToInstanceInvokeExprChecksSet
protected java.util.Map unitToInstanceInvokeExprChecksSet
unitToLengthExprChecksSet
protected java.util.Map unitToLengthExprChecksSet
refTypeLocals
protected java.util.List refTypeLocals
refTypeInstFields
protected java.util.List refTypeInstFields
refTypeInstFieldBases
protected java.util.List refTypeInstFieldBases
refTypeStaticFields
protected java.util.List refTypeStaticFields
refTypeValues
protected java.util.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)
refInfo
protected final int refInfo(EquivalentValue r,
FlowSet fs)
refInfo
protected final int refInfo(Value r,
FlowSet fs)
anyRefInfo
protected final int anyRefInfo(Value r,
FlowSet f)
flowThrough
protected void flowThrough(java.lang.Object inValue,
Unit stmt,
java.util.List outFallValue,
java.util.List outBranchValues)
- Description copied from class: BranchedFlowAnalysis
- Given the merge of the
in
sets,
compute the fallOut
and branchOuts
set for s
.
- Overrides:
- flowThrough in class BranchedFlowAnalysis
merge
protected void merge(java.lang.Object in1,
java.lang.Object in2,
java.lang.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.
- Overrides:
- merge in class AbstractFlowAnalysis
copy
protected void copy(java.lang.Object source,
java.lang.Object dest)
- Description copied from class: AbstractFlowAnalysis
- Creates a copy of the
source
flow object in dest
.
- Overrides:
- copy in class AbstractFlowAnalysis
newInitialFlow
protected java.lang.Object newInitialFlow()
- Description copied from class: AbstractFlowAnalysis
- Returns the flow object corresponding to the initial values for
each graph node.
- Overrides:
- newInitialFlow in class AbstractFlowAnalysis
entryInitialFlow
protected java.lang.Object entryInitialFlow()
- Description copied from class: AbstractFlowAnalysis
- Returns the initial flow value for entry/exit graph nodes.
- Overrides:
- 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