com.ibm.wala.analysis.pointers
Class HeapGraph
java.lang.Object
com.ibm.wala.analysis.pointers.HeapGraph
- All Implemented Interfaces:
- EdgeManager<java.lang.Object>, Graph<java.lang.Object>, NodeManager<java.lang.Object>, NumberedEdgeManager<java.lang.Object>, NumberedGraph<java.lang.Object>, NumberedNodeManager<java.lang.Object>, java.lang.Iterable<java.lang.Object>
- Direct Known Subclasses:
- BasicHeapGraph
public abstract class HeapGraph
- extends java.lang.Object
- implements NumberedGraph<java.lang.Object>
A Graph view of a pointer analysis solution.
Nodes in the Graph are PointerKeys and InstanceKeys.
There is an edge from a PointerKey P to an InstanceKey I iff the PointerAnalysis
indicates that P may point to I.
There is an edge from an InstanceKey I to a PointerKey P iff
- P represents a field of an object instance modelled by I, or
- P represents the array contents of array instance I.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HeapGraph
protected HeapGraph(HeapModel hm)
iterateNodes
public java.util.Iterator<java.lang.Object> iterateNodes(IntSet s)
- Specified by:
iterateNodes in interface NumberedNodeManager<java.lang.Object>
- Returns:
- iterator of nodes with the numbers in set s
getReachableInstances
public java.util.Collection<java.lang.Object> getReachableInstances(java.util.Set<java.lang.Object> roots)
removeNodeAndEdges
public void removeNodeAndEdges(java.lang.Object N)
- Description copied from interface:
Graph
- remove a node and all its incident edges
- Specified by:
removeNodeAndEdges in interface Graph<java.lang.Object>
getHeapModel
public HeapModel getHeapModel()
- Returns:
- Returns the heap model used in this pointer analysis.