public class ExplicitCallGraph.ExplicitNode extends BasicCallGraph.NodeImpl
ContextItem.Value<T>| Modifier and Type | Field and Description |
|---|---|
protected com.ibm.wala.util.collections.SparseVector<java.lang.Object> |
targets
A Mapping from call site program counter (int) -> Object, where Object is a CGNode if
we've discovered exactly one target for the site, or an IntSet of node numbers if we've
discovered more than one target for the site.
|
method| Modifier | Constructor and Description |
|---|---|
protected |
ExplicitNode(IMethod method,
Context C) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addTarget(CallSiteReference site,
CGNode tNode)
NOTE: This is for use only by call graph builders, not by any other client of this interface.
|
protected boolean |
addTarget(int pc,
CGNode tNode) |
void |
clearAllTargets() |
boolean |
equals(java.lang.Object obj) |
protected com.ibm.wala.util.intset.MutableSharedBitVectorIntSet |
getAllTargetNumbers() |
ExplicitCallGraph |
getCallGraph() |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
getCFG() |
DefUse |
getDU() |
IR |
getIR() |
protected int |
getNumberOfTargets(CallSiteReference site) |
protected java.util.Iterator<CallSiteReference> |
getPossibleSites(CGNode to) |
protected com.ibm.wala.util.intset.IntSet |
getPossibleTargetNumbers(CallSiteReference site) |
protected java.util.Set<CGNode> |
getPossibleTargets(CallSiteReference site) |
int |
hashCode() |
java.util.Iterator<CallSiteReference> |
iterateCallSites() |
java.util.Iterator<NewSiteReference> |
iterateNewSites() |
void |
removeTarget(CGNode target) |
getClassHierarchy, getContext, getMethod, toStringgetGraphNodeId, setGraphNodeIdprotected final com.ibm.wala.util.collections.SparseVector<java.lang.Object> targets
protected java.util.Set<CGNode> getPossibleTargets(CallSiteReference site)
protected com.ibm.wala.util.intset.IntSet getPossibleTargetNumbers(CallSiteReference site)
protected java.util.Iterator<CallSiteReference> getPossibleSites(CGNode to)
protected int getNumberOfTargets(CallSiteReference site)
public boolean addTarget(CallSiteReference site, CGNode tNode)
CGNodeRecord that a particular call site might resolve to a call to a particular target node. Returns true if this is a new target
protected boolean addTarget(int pc,
CGNode tNode)
public void removeTarget(CGNode target)
public boolean equals(java.lang.Object obj)
equals in class BasicCallGraph.NodeImplObject.equals(Object)public int hashCode()
hashCode in class BasicCallGraph.NodeImplObject.hashCode()protected com.ibm.wala.util.intset.MutableSharedBitVectorIntSet getAllTargetNumbers()
public void clearAllTargets()
public IR getIR()
public DefUse getDU()
public ExplicitCallGraph getCallGraph()
public java.util.Iterator<CallSiteReference> iterateCallSites()
public java.util.Iterator<NewSiteReference> iterateNewSites()
public ControlFlowGraph<SSAInstruction,ISSABasicBlock> getCFG()