org.dellroad.jc.cgen.analysis
Class ActiveUseAnalysis

java.lang.Object
  extended bysoot.toolkits.scalar.AbstractFlowAnalysis
      extended bysoot.toolkits.scalar.FlowAnalysis
          extended bysoot.toolkits.scalar.ForwardFlowAnalysis
              extended byorg.dellroad.jc.cgen.analysis.ActiveUseAnalysis

public class ActiveUseAnalysis
extends ForwardFlowAnalysis

Analysis used by ActiveUseTagger.


Field Summary
 
Fields inherited from class soot.toolkits.scalar.FlowAnalysis
unitToAfterFlow
 
Fields inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
unitToBeforeFlow
 
Constructor Summary
ActiveUseAnalysis(Body body)
          Equivalent to ActiveUseAnalysis(new CompleteUnitGraph(body)).
ActiveUseAnalysis(UnitGraph graph)
          Do active use analysis on body using the supplied unit graph.
 
Method Summary
protected  void copy(Object src, Object dst)
           
protected  Object entryInitialFlow()
           
protected  void flowThrough(Object in, Object obj, Object out)
           
 boolean isCheckNeeded(Unit unit, SootClass cl)
          Determine if a first active use check for class cl would be needed before executing unit.
protected  void merge(Object in1, Object in2, Object out)
           
protected  Object newInitialFlow()
           
 
Methods inherited from class soot.toolkits.scalar.ForwardFlowAnalysis
doAnalysis, isForward
 
Methods inherited from class soot.toolkits.scalar.FlowAnalysis
getFlowAfter
 
Methods inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
customizeInitialFlowGraph, getFlowBefore, treatTrapHandlersAsEntries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ActiveUseAnalysis

public ActiveUseAnalysis(Body body)
Equivalent to ActiveUseAnalysis(new CompleteUnitGraph(body)).

Parameters:
body - method body to analyze

ActiveUseAnalysis

public ActiveUseAnalysis(UnitGraph graph)
Do active use analysis on body using the supplied unit graph.

Parameters:
graph - method body to analyze
Method Detail

isCheckNeeded

public boolean isCheckNeeded(Unit unit,
                             SootClass cl)
Determine if a first active use check for class cl would be needed before executing unit.


entryInitialFlow

protected Object entryInitialFlow()

newInitialFlow

protected Object newInitialFlow()

flowThrough

protected void flowThrough(Object in,
                           Object obj,
                           Object out)

merge

protected void merge(Object in1,
                     Object in2,
                     Object out)

copy

protected void copy(Object src,
                    Object dst)