soot.toolkits.graph
Class CompleteUnitGraph

java.lang.Object
  extended by soot.toolkits.graph.UnitGraph
      extended by soot.toolkits.graph.ExceptionalUnitGraph
          extended by soot.toolkits.graph.CompleteUnitGraph
All Implemented Interfaces:
Iterable<Unit>, DirectedGraph<Unit>, ExceptionalGraph<Unit>

public class CompleteUnitGraph
extends ExceptionalUnitGraph

Represents a CFG for a Body instance where the nodes are Unit instances, and where control flow associated with exceptions is taken into account. In a CompleteUnitGraph, every Unit covered by a Trap is considered to have the potential to throw an exception caught by the Trap, so there are edges to the Trap's handler from every trapped Unit , as well as from all the predecessors of the trapped Units.

This implementation of CompleteUnitGraph is included for backwards compatibility (new code should use ExceptionalUnitGraph), but the graphs it produces are not necessarily identical to the graphs produced by the implementation of CompleteUnitGraph provided by versions of Soot up to and including release 2.1.0. The known differences include:


Nested Class Summary
 
Nested classes/interfaces inherited from class soot.toolkits.graph.ExceptionalUnitGraph
ExceptionalUnitGraph.ExceptionDest
 
Field Summary
 
Fields inherited from class soot.toolkits.graph.ExceptionalUnitGraph
throwAnalysis, unitToExceptionalPreds, unitToExceptionalSuccs, unitToExceptionDests, unitToUnexceptionalPreds, unitToUnexceptionalSuccs
 
Fields inherited from class soot.toolkits.graph.UnitGraph
body, heads, method, tails, unitChain, unitToPreds, unitToSuccs
 
Constructor Summary
CompleteUnitGraph(Body b)
           
 
Method Summary
 
Methods inherited from class soot.toolkits.graph.ExceptionalUnitGraph
buildExceptionalEdges, buildExceptionDests, buildHeadsAndTails, getExceptionalPredsOf, getExceptionalSuccsOf, getExceptionDests, getUnexceptionalPredsOf, getUnexceptionalSuccsOf, initialize, toString
 
Methods inherited from class soot.toolkits.graph.UnitGraph
addEdge, buildUnexceptionalEdges, combineMapValues, getBody, getExtendedBasicBlockPathBetween, getHeads, getPredsOf, getSuccsOf, getTails, iterator, makeMappedListsUnmodifiable, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface soot.toolkits.graph.ExceptionalGraph
getBody
 
Methods inherited from interface soot.toolkits.graph.DirectedGraph
getHeads, getPredsOf, getSuccsOf, getTails, iterator, size
 

Constructor Detail

CompleteUnitGraph

public CompleteUnitGraph(Body b)