soot.jimple.toolkits.annotation.nullcheck
Class BranchedRefVarsAnalysis

java.lang.Object
  extended by soot.toolkits.scalar.AbstractFlowAnalysis<N,A>
      extended by soot.toolkits.scalar.BranchedFlowAnalysis<Unit,A>
          extended by soot.toolkits.scalar.ForwardBranchedFlowAnalysis
              extended by soot.jimple.toolkits.annotation.nullcheck.BranchedRefVarsAnalysis

Deprecated. THIS IS KNOWN TO BE BUGGY. USE NullnessAnalysis INSTEAD!

public class BranchedRefVarsAnalysis
extends ForwardBranchedFlowAnalysis


Field Summary
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.  
 
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

kBottom

public static final int kBottom
Deprecated. 
See Also:
Constant Field Values

kNull

public static final int kNull
Deprecated. 
See Also:
Constant Field Values

kNonNull

public static final int kNonNull
Deprecated. 
See Also:
Constant Field Values

kTop

public static final int kTop
Deprecated. 
See Also:
Constant Field Values

emptySet

protected FlowSet emptySet
Deprecated. 

fullSet

protected FlowSet fullSet
Deprecated. 

unitToGenerateSet

protected Map<Unit,FlowSet> unitToGenerateSet
Deprecated. 

unitToPreserveSet

protected Map<Unit,FlowSet> unitToPreserveSet
Deprecated. 

unitToAnalyzedChecksSet

protected Map<Unit,HashSet<Value>> unitToAnalyzedChecksSet
Deprecated. 

unitToArrayRefChecksSet

protected Map<Unit,HashSet<Value>> unitToArrayRefChecksSet
Deprecated. 

unitToInstanceFieldRefChecksSet

protected Map<Unit,HashSet<Value>> unitToInstanceFieldRefChecksSet
Deprecated. 

unitToInstanceInvokeExprChecksSet

protected Map<Unit,HashSet<Value>> unitToInstanceInvokeExprChecksSet
Deprecated. 

unitToLengthExprChecksSet

protected Map<Unit,HashSet<Value>> unitToLengthExprChecksSet
Deprecated. 

refTypeLocals

protected List<EquivalentValue> refTypeLocals
Deprecated. 

refTypeInstFields

protected List<EquivalentValue> refTypeInstFields
Deprecated. 

refTypeInstFieldBases

protected List<EquivalentValue> refTypeInstFieldBases
Deprecated. 

refTypeStaticFields

protected List<EquivalentValue> refTypeStaticFields
Deprecated. 

refTypeValues

protected List<EquivalentValue> refTypeValues
Deprecated. 

tempFlowSet

protected FlowSet tempFlowSet
Deprecated. 
Constructor Detail

BranchedRefVarsAnalysis

public BranchedRefVarsAnalysis(UnitGraph g)
Deprecated. THIS IS KNOWN TO BE BUGGY. USE NullnessAnalysis INSTEAD!

Method Detail

getEquivalentValue

public EquivalentValue getEquivalentValue(Value v)
Deprecated. 

getKRefIntPair

public RefIntPair getKRefIntPair(EquivalentValue r,
                                 int v)
Deprecated. 

isAlwaysNonNull

protected boolean isAlwaysNonNull(Value ro)
Deprecated. 

refInfo

protected final int refInfo(EquivalentValue r,
                            FlowSet fs)
Deprecated. 

refInfo

protected final int refInfo(Value r,
                            FlowSet fs)
Deprecated. 

anyRefInfo

public int anyRefInfo(Value r,
                      FlowSet f)
Deprecated. 

flowThrough

protected void flowThrough(Object inValue,
                           Unit stmt,
                           List outFallValue,
                           List outBranchValues)
Deprecated. 
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)
Deprecated. 
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)
Deprecated. 
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()
Deprecated. 
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()
Deprecated. 
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()
Deprecated. 
Description copied from class: AbstractFlowAnalysis
Determines whether entryInitialFlow() is applied to trap handlers.

Overrides:
treatTrapHandlersAsEntries in class AbstractFlowAnalysis