public abstract class HeapGraphImpl<T extends InstanceKey> extends Object implements HeapGraph<T>
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 modeled by I, or - P
represents the array contents of array instance I.| Modifier | Constructor and Description |
|---|---|
protected |
HeapGraphImpl(PointerAnalysis<T> pa) |
| Modifier and Type | Method and Description |
|---|---|
HeapModel |
getHeapModel() |
PointerAnalysis<T> |
getPointerAnalysis() |
Collection<Object> |
getReachableInstances(Set<Object> roots) |
Iterator<Object> |
iterateNodes(IntSet s) |
void |
removeNodeAndEdges(Object N)
remove a node and all its incident edges
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetMaxNumber, getNode, getNumberaddNode, containsNode, getNumberOfNodes, iterator, removeNodeforEach, spliteratorgetPredNodeNumbers, getSuccNodeNumbersaddEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdgesprotected HeapGraphImpl(PointerAnalysis<T> pa)
public Iterator<Object> iterateNodes(IntSet s)
iterateNodes in interface NumberedNodeManager<Object>public Collection<Object> getReachableInstances(Set<Object> roots)
getReachableInstances in interface HeapGraph<T extends InstanceKey>public void removeNodeAndEdges(Object N) throws UnsupportedOperationException
GraphremoveNodeAndEdges in interface Graph<Object>UnsupportedOperationException - if the graph implementation does not allow removalpublic HeapModel getHeapModel()
getHeapModel in interface HeapGraph<T extends InstanceKey>public PointerAnalysis<T> getPointerAnalysis()
getPointerAnalysis in interface HeapGraph<T extends InstanceKey>