soot.jimple.toolkits.thread.synchronization
Class SynchronizedRegionFinder

java.lang.Object
  extended by soot.toolkits.scalar.AbstractFlowAnalysis<N,A>
      extended by soot.toolkits.scalar.FlowAnalysis<N,A>
          extended by soot.toolkits.scalar.ForwardFlowAnalysis<Unit,FlowSet>
              extended by soot.jimple.toolkits.thread.synchronization.SynchronizedRegionFinder

public class SynchronizedRegionFinder
extends ForwardFlowAnalysis<Unit,FlowSet>

Author:
Richard L. Halpert Finds Synchronized Regions and creates a set of CriticalSection objects from them.

Field Summary
 boolean optionOpenNesting
           
 boolean optionPrintDebug
           
 
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(FlowSet sourceSet, FlowSet destSet)
          Creates a copy of the source flow object in dest.
protected  FlowSet entryInitialFlow()
          IN(Start) is the empty set
protected  void flowThrough(FlowSet in, Unit unit, FlowSet out)
          OUT is the same as (IN minus killSet) plus the genSet.
protected  void merge(FlowSet inSet1, FlowSet inSet2, FlowSet outSet)
          union
protected  FlowSet newInitialFlow()
          All INs are initialized to the empty set.
 
Methods inherited from class soot.toolkits.scalar.ForwardFlowAnalysis
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
 

Field Detail

optionPrintDebug

public boolean optionPrintDebug

optionOpenNesting

public boolean optionOpenNesting
Method Detail

newInitialFlow

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

Specified by:
newInitialFlow in class AbstractFlowAnalysis<Unit,FlowSet>

entryInitialFlow

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

Specified by:
entryInitialFlow in class AbstractFlowAnalysis<Unit,FlowSet>

flowThrough

protected void flowThrough(FlowSet in,
                           Unit unit,
                           FlowSet out)
OUT is the same as (IN minus killSet) plus the genSet.

Specified by:
flowThrough in class FlowAnalysis<Unit,FlowSet>

merge

protected void merge(FlowSet inSet1,
                     FlowSet inSet2,
                     FlowSet outSet)
union

Specified by:
merge in class AbstractFlowAnalysis<Unit,FlowSet>

copy

protected void copy(FlowSet sourceSet,
                    FlowSet destSet)
Description copied from class: AbstractFlowAnalysis
Creates a copy of the source flow object in dest.

Specified by:
copy in class AbstractFlowAnalysis<Unit,FlowSet>