soot.toolkits.graph.pdg
Class MHGDominatorTree

java.lang.Object
  extended by soot.toolkits.graph.DominatorTree
      extended by soot.toolkits.graph.pdg.MHGDominatorTree

public class MHGDominatorTree
extends DominatorTree

Constructs a multi-headed dominator tree. This is mostly the same as the DominatorTree but the buildTree method is changed to allow mutilple heads. This can be used for graphs that are multi-headed and cannot be augmented to become single-headed.

Author:
Hossein Sadat-Mohtasham March 2009

Field Summary
protected  ArrayList<DominatorNode> heads
           
 
Fields inherited from class soot.toolkits.graph.DominatorTree
dominators, godeToDode, graph, head, tails
 
Constructor Summary
MHGDominatorTree(DominatorsFinder dominators)
           
 
Method Summary
protected  void buildTree()
          This overrides the parent buildTree to allow multiple heads.
 List<DominatorNode> getHeads()
          Returns the root(s)!!! of the dominator tree.
 
Methods inherited from class soot.toolkits.graph.DominatorTree
fetchDode, fetchParent, getChildrenOf, getDode, getGraph, getHead, getParentOf, getPredsOf, getSuccsOf, getTails, isDominatorOf, isImmediateDominatorOf, iterator, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

heads

protected ArrayList<DominatorNode> heads
Constructor Detail

MHGDominatorTree

public MHGDominatorTree(DominatorsFinder dominators)
Method Detail

getHeads

public List<DominatorNode> getHeads()
Returns the root(s)!!! of the dominator tree.


buildTree

protected void buildTree()
This overrides the parent buildTree to allow multiple heads. Mostly copied from the super class and modified.

Overrides:
buildTree in class DominatorTree