soot.jimple.toolkits.annotation.nullcheck
Class BranchedRefVarsAnalysis

java.lang.Object
  |
  +--soot.toolkits.scalar.BranchedFlowAnalysis
        |
        +--soot.toolkits.scalar.ForwardBranchedFlowAnalysis
              |
              +--soot.jimple.toolkits.annotation.nullcheck.BranchedRefVarsAnalysis

public class BranchedRefVarsAnalysis
extends ForwardBranchedFlowAnalysis


Field Summary
protected  FlowSet emptySet
           
protected  FlowSet fullSet
           
protected static int kBottom
           
protected static int kNonNull
           
protected static int kNull
           
protected static int kTop
           
protected  java.util.List refTypeInstFieldBases
           
protected  java.util.List refTypeInstFields
           
protected  java.util.List refTypeLocals
           
protected  java.util.List refTypeStaticFields
           
protected  java.util.List refTypeValues
           
protected  FlowSet tempFlowSet
           
protected  java.util.Map unitToAnalyzedChecksSet
           
protected  java.util.Map unitToArrayRefChecksSet
           
protected  java.util.Map unitToGenerateSet
           
protected  java.util.Map unitToInstanceFieldRefChecksSet
           
protected  java.util.Map unitToInstanceInvokeExprChecksSet
           
protected  java.util.Map unitToLengthExprChecksSet
           
protected  java.util.Map unitToPreserveSet
           
 
Fields inherited from class soot.toolkits.scalar.BranchedFlowAnalysis
graph, unitToAfterBranchFlow, unitToAfterFallFlow, unitToBeforeFlow
 
Constructor Summary
BranchedRefVarsAnalysis(UnitGraph g)
          end of utility methods
 
Method Summary
protected static int anyRefInfo(Value r, FlowSet f)
           
protected  void copy(java.lang.Object source, java.lang.Object dest)
           
protected  void customizeInitialFlowGraph()
           
protected  void flowThrough(java.lang.Object inValue, Unit stmt, java.util.List outFallValue, java.util.List outBranchValues)
           
static EquivalentValue getEquivalentValue(Value v)
           
static RefIntPair getKRefIntPair(EquivalentValue r, int v)
           
protected  void merge(java.lang.Object in1, java.lang.Object in2, java.lang.Object out)
           
protected  java.lang.Object newInitialFlow()
           
protected static int refInfo(EquivalentValue r, FlowSet fs)
           
protected static int refInfo(Value r, FlowSet fs)
           
 
Methods inherited from class soot.toolkits.scalar.ForwardBranchedFlowAnalysis
doAnalysis, isForward
 
Methods inherited from class soot.toolkits.scalar.BranchedFlowAnalysis
entryInitialFlow, getBranchFlowAfter, getFallFlowAfter, getFlowBefore
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

kBottom

protected static final int kBottom
See Also:
Constant Field Values

kNull

protected static final int kNull
See Also:
Constant Field Values

kNonNull

protected static final int kNonNull
See Also:
Constant Field Values

kTop

protected static final int kTop
See Also:
Constant Field Values

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
Constructor Detail

BranchedRefVarsAnalysis

public BranchedRefVarsAnalysis(UnitGraph g)
end of utility methods

Method Detail

getEquivalentValue

public static EquivalentValue getEquivalentValue(Value v)

getKRefIntPair

public static RefIntPair getKRefIntPair(EquivalentValue r,
                                        int v)

refInfo

protected static final int refInfo(EquivalentValue r,
                                   FlowSet fs)

refInfo

protected static final int refInfo(Value r,
                                   FlowSet fs)

anyRefInfo

protected static 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)
Specified by:
flowThrough in class BranchedFlowAnalysis

merge

protected void merge(java.lang.Object in1,
                     java.lang.Object in2,
                     java.lang.Object out)
Specified by:
merge in class BranchedFlowAnalysis

copy

protected void copy(java.lang.Object source,
                    java.lang.Object dest)
Specified by:
copy in class BranchedFlowAnalysis

newInitialFlow

protected java.lang.Object newInitialFlow()
Specified by:
newInitialFlow in class BranchedFlowAnalysis

customizeInitialFlowGraph

protected void customizeInitialFlowGraph()
Overrides:
customizeInitialFlowGraph in class BranchedFlowAnalysis