dk.brics.string.java
Class ThisPointerAnalysis

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,Set<Local>>
              extended by dk.brics.string.java.ThisPointerAnalysis

public class ThisPointerAnalysis
extends ForwardFlowAnalysis<Unit,Set<Local>>

Determines which variables definitely refer to this at each program point.

This class has been well tested, but is currently unused.


Field Summary
 
Fields inherited from class soot.toolkits.scalar.FlowAnalysis
filterUnitToAfterFlow, unitToAfterFlow
 
Fields inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
filterUnitToBeforeFlow, graph, unitToBeforeFlow
 
Constructor Summary
ThisPointerAnalysis(ExceptionalUnitGraph g)
           
 
Method Summary
protected  void copy(Set<Local> source, Set<Local> dest)
           
protected  Set<Local> entryInitialFlow()
           
protected  void flowThrough(Set<Local> in, Unit node, Set<Local> out)
           
 Set<Local> getThisLocalsAfter(Stmt stmt)
           
 Set<Local> getThisLocalsBefore(Stmt stmt)
           
protected  void merge(Set<Local> in1, Set<Local> in2, Set<Local> out)
           
protected  Set<Local> newInitialFlow()
           
 
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, treatTrapHandlersAsEntries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThisPointerAnalysis

public ThisPointerAnalysis(ExceptionalUnitGraph g)
Method Detail

copy

protected void copy(Set<Local> source,
                    Set<Local> dest)
Specified by:
copy in class AbstractFlowAnalysis<Unit,Set<Local>>

entryInitialFlow

protected Set<Local> entryInitialFlow()
Specified by:
entryInitialFlow in class AbstractFlowAnalysis<Unit,Set<Local>>

flowThrough

protected void flowThrough(Set<Local> in,
                           Unit node,
                           Set<Local> out)
Specified by:
flowThrough in class FlowAnalysis<Unit,Set<Local>>

getThisLocalsAfter

public Set<Local> getThisLocalsAfter(Stmt stmt)

getThisLocalsBefore

public Set<Local> getThisLocalsBefore(Stmt stmt)

merge

protected void merge(Set<Local> in1,
                     Set<Local> in2,
                     Set<Local> out)
Specified by:
merge in class AbstractFlowAnalysis<Unit,Set<Local>>

newInitialFlow

protected Set<Local> newInitialFlow()
Specified by:
newInitialFlow in class AbstractFlowAnalysis<Unit,Set<Local>>


Copyright © 2003-2009 Anders Møller, Aske Simon Christensen, Asger Feldthaus.