soot.jimple.toolkits.thread.synchronization
Class StrayRWFinder

java.lang.Object
  extended by soot.toolkits.scalar.AbstractFlowAnalysis<N,A>
      extended by soot.toolkits.scalar.FlowAnalysis<N,A>
          extended by soot.toolkits.scalar.BackwardFlowAnalysis
              extended by soot.jimple.toolkits.thread.synchronization.StrayRWFinder

public class StrayRWFinder
extends BackwardFlowAnalysis

Author:
Richard L. Halpert StrayRWFinder - Analysis to locate reads/writes to shared data that appear outside synchronization

Field Summary
 
Fields inherited from class soot.toolkits.scalar.FlowAnalysis
filterUnitToAfterFlow, unitToAfterFlow
 
Fields inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
filterUnitToBeforeFlow, graph, unitToBeforeFlow
 
Method Summary
protected  void copy(Object source, Object dest)
          Creates a copy of the source flow object in dest.
protected  Object entryInitialFlow()
          IN(Start) is the empty set
protected  void flowThrough(Object inValue, Object unit, Object outValue)
          OUT is the same as (IN minus killSet) plus the genSet.
protected  void merge(Object in1, Object in2, Object out)
          union, except for transactions in progress.
protected  Object newInitialFlow()
          All INs are initialized to the empty set.
 
Methods inherited from class soot.toolkits.scalar.BackwardFlowAnalysis
constructWorklist, doAnalysis, isForward
 
Methods inherited from class soot.toolkits.scalar.FlowAnalysis
constructOrderer, getFlowAfter
 
Methods inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
getFlowBefore, merge, mergeInto, treatTrapHandlersAsEntries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

newInitialFlow

protected Object newInitialFlow()
All INs are initialized to the empty set.

Specified by:
newInitialFlow in class AbstractFlowAnalysis

entryInitialFlow

protected Object entryInitialFlow()
IN(Start) is the empty set

Specified by:
entryInitialFlow in class AbstractFlowAnalysis

flowThrough

protected void flowThrough(Object inValue,
                           Object unit,
                           Object outValue)
OUT is the same as (IN minus killSet) plus the genSet.

Specified by:
flowThrough in class FlowAnalysis

merge

protected void merge(Object in1,
                     Object in2,
                     Object out)
union, except for transactions in progress. They get joined

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