public abstract class HeapGraphImpl<T extends InstanceKey> extends Object implements HeapGraph<T>
Graph
view of a pointer analysis solution.
Nodes in the Graph are PointerKey
s and InstanceKey
s.
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, wait
getMaxNumber, getNode, getNumber
addNode, containsNode, getNumberOfNodes, iterator, removeNode
forEach, spliterator
getPredNodeNumbers, getSuccNodeNumbers
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
protected 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
Graph
removeNodeAndEdges
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>