| Modifier and Type | Method and Description |
|---|---|
protected void |
SparkTransformer.addTag(Host h,
Node n,
java.util.Map<Node,Tag> nodeToTag,
Tag unknown) |
protected void |
SparkTransformer.addTag(Host h,
Node n,
java.util.Map<Node,Tag> nodeToTag,
Tag unknown) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
SparkTransformer.addTag(Host h,
Node n,
java.util.Map<Node,Tag> nodeToTag,
Tag unknown) |
protected void |
SparkTransformer.addTag(Host h,
Node n,
java.util.Map<Node,Tag> nodeToTag,
Tag unknown) |
| Modifier and Type | Method and Description |
|---|---|
Node |
GlobalNodeFactory.caseArgv() |
Node |
GlobalNodeFactory.caseArgv() |
Node |
MethodNodeFactory.caseArray(VarNode base) |
Node |
MethodNodeFactory.caseArray(VarNode base) |
Node |
GlobalNodeFactory.caseCanonicalPath() |
Node |
GlobalNodeFactory.caseCanonicalPath() |
Node |
GlobalNodeFactory.caseDefaultClassLoader() |
Node |
GlobalNodeFactory.caseDefaultClassLoader() |
Node |
GlobalNodeFactory.caseFinalizeQueue() |
Node |
GlobalNodeFactory.caseFinalizeQueue() |
Node |
GlobalNodeFactory.caseMainClassNameString() |
Node |
GlobalNodeFactory.caseMainClassNameString() |
Node |
GlobalNodeFactory.caseMainThread() |
Node |
GlobalNodeFactory.caseMainThread() |
Node |
GlobalNodeFactory.caseMainThreadGroup() |
Node |
GlobalNodeFactory.caseMainThreadGroup() |
Node |
GlobalNodeFactory.caseNewInstance(VarNode cls) |
Node |
GlobalNodeFactory.caseNewInstance(VarNode cls) |
Node |
MethodNodeFactory.caseParm(int index) |
Node |
MethodNodeFactory.caseParm(int index) |
Node |
GlobalNodeFactory.casePrivilegedActionException() |
Node |
GlobalNodeFactory.casePrivilegedActionException() |
Node |
MethodNodeFactory.caseRet() |
Node |
MethodNodeFactory.caseRet() |
Node |
MethodNodeFactory.caseThis() |
Node |
MethodNodeFactory.caseThis() |
Node |
GlobalNodeFactory.caseThrow() |
Node |
GlobalNodeFactory.caseThrow() |
Node |
MethodNodeFactory.getNode() |
Node |
MethodNodeFactory.getNode() |
Node |
MethodNodeFactory.getNode(Value v) |
Node |
MethodNodeFactory.getNode(Value v) |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<Node,java.util.List<VarType>> |
PtSensVisitor.tableView |
protected java.util.Map<Node,java.util.List<VarType>> |
PtSensVisitor.tableView |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<VarType> |
PtSensVisitor.getCSList(Node var)
Obtain the list of context sensitive objects pointed to by var.
|
java.util.List<VarType> |
PtSensVisitor.getCSList(Node var)
Obtain the list of context sensitive objects pointed to by var.
|
boolean |
Obj_full_extractor.visit(Node var,
long L,
long R,
int sm_int) |
abstract boolean |
PtSensVisitor.visit(Node var,
long L,
long R,
int sm_int)
We use visitor pattern to collect contexts.
|
boolean |
Obj_full_extractor.visit(Node var,
long L,
long R,
int sm_int) |
abstract boolean |
PtSensVisitor.visit(Node var,
long L,
long R,
int sm_int)
We use visitor pattern to collect contexts.
|
| Modifier and Type | Field and Description |
|---|---|
Node |
ContextVar.var |
Node |
ContextVar.var |
| Constructor and Description |
|---|
CallsiteContextVar(CgEdge c,
Node v) |
CallsiteContextVar(CgEdge c,
Node v) |
IntervalContextVar(long l,
long r,
Node v) |
IntervalContextVar(long l,
long r,
Node v) |
| Modifier and Type | Method and Description |
|---|---|
IVarAbstraction |
FullSensitiveNodeGenerator.generateNode(Node vNode) |
IVarAbstraction |
FullSensitiveNodeGenerator.generateNode(Node vNode) |
| Constructor and Description |
|---|
FullSensitiveNode(Node thisVar) |
FullSensitiveNode(Node thisVar) |
| Modifier and Type | Field and Description |
|---|---|
Node |
IVarAbstraction.me |
Node |
IVarAbstraction.me |
| Modifier and Type | Field and Description |
|---|---|
java.util.Map<Node,IVarAbstraction> |
GeomPointsTo.consG |
java.util.Map<Node,IVarAbstraction> |
GeomPointsTo.consG |
| Modifier and Type | Method and Description |
|---|---|
Node |
IVarAbstraction.getWrappedNode()
Processing the wrapped SPARK node.
|
Node |
IVarAbstraction.getWrappedNode()
Processing the wrapped SPARK node.
|
| Modifier and Type | Method and Description |
|---|---|
IVarAbstraction |
GeomPointsTo.findInternalNode(Node v)
Find our representation for the SPARK node @param v.
|
IVarAbstraction |
GeomPointsTo.findInternalNode(Node v)
Find our representation for the SPARK node @param v.
|
abstract IVarAbstraction |
IEncodingBroker.generateNode(Node v)
Generate a node of proper kind.
|
abstract IVarAbstraction |
IEncodingBroker.generateNode(Node v)
Generate a node of proper kind.
|
boolean |
GeomPointsTo.isExceptionPointer(Node v) |
boolean |
GeomPointsTo.isExceptionPointer(Node v) |
boolean |
GeomPointsTo.isValidGeometricNode(Node sparkNode)
Given a valid SPARK node, we test if it is still valid after the geometric analysis.
|
boolean |
GeomPointsTo.isValidGeometricNode(Node sparkNode)
Given a valid SPARK node, we test if it is still valid after the geometric analysis.
|
IVarAbstraction |
GeomPointsTo.makeInternalNode(Node v)
Transform the SPARK node @param v representation to our representation.
|
IVarAbstraction |
GeomPointsTo.makeInternalNode(Node v)
Transform the SPARK node @param v representation to our representation.
|
| Modifier and Type | Method and Description |
|---|---|
void |
OfflineProcessor.addUserDefPts(java.util.Set<Node> initVars)
Compute the refined points-to results for specified pointers.
|
void |
OfflineProcessor.addUserDefPts(java.util.Set<Node> initVars)
Compute the refined points-to results for specified pointers.
|
void |
GeomPointsTo.ddSolve(java.util.Set<Node> qryNodes)
The demand-driven mode for precisely computing points-to information for given pointers.
|
void |
GeomPointsTo.ddSolve(java.util.Set<Node> qryNodes)
The demand-driven mode for precisely computing points-to information for given pointers.
|
| Constructor and Description |
|---|
DummyNode(Node thisVarNode) |
DummyNode(Node thisVarNode) |
| Modifier and Type | Method and Description |
|---|---|
IVarAbstraction |
HeapInsNodeGenerator.generateNode(Node vNode) |
IVarAbstraction |
HeapInsNodeGenerator.generateNode(Node vNode) |
| Constructor and Description |
|---|
HeapInsNode(Node thisVar) |
HeapInsNode(Node thisVar) |
| Modifier and Type | Method and Description |
|---|---|
IVarAbstraction |
PtInsNodeGenerator.generateNode(Node vNode) |
IVarAbstraction |
PtInsNodeGenerator.generateNode(Node vNode) |
| Constructor and Description |
|---|
PtInsNode(Node thisVar)
Deprecated.
|
PtInsNode(Node thisVar)
Deprecated.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AllocDotField
Represents an alloc-site-dot-field node (Yellow) in the pointer
assignment graph.
|
class |
AllocNode
Represents an allocation site node (Blue) in the pointer assignment graph.
|
class |
ClassConstantNode
Represents an allocation site node the represents a known java.lang.Class
object.
|
class |
ContextVarNode
Represents a simple variable node with context.
|
class |
FieldRefNode
Represents a field reference node (Red) in the pointer assignment graph.
|
class |
GlobalVarNode
Represents a simple variable node (Green) in the pointer assignment graph
that is not associated with any particular method invocation.
|
class |
LocalVarNode
Represents a simple variable node (Green) in the pointer assignment graph
that is specific to a particular method invocation.
|
class |
StringConstantNode
Represents an allocation site node the represents a constant string.
|
class |
ValNode
Represents a simple of field ref node (Green or Red) in the pointer
assignment graph.
|
class |
VarNode
Represents a simple variable node (Green) in the pointer assignment graph.
|
| Modifier and Type | Field and Description |
|---|---|
protected static Node[] |
PAG.EMPTY_NODE_ARRAY |
protected static Node[] |
PAG.EMPTY_NODE_ARRAY |
protected Node |
Node.replacement |
protected Node |
Node.replacement |
| Modifier and Type | Field and Description |
|---|---|
HashMultiMap<InvokeExpr,Pair<Node,Node>> |
PAG.callAssigns |
HashMultiMap<InvokeExpr,Pair<Node,Node>> |
PAG.callAssigns |
HashMultiMap<InvokeExpr,Pair<Node,Node>> |
PAG.callAssigns |
HashMultiMap<InvokeExpr,Pair<Node,Node>> |
PAG.callAssigns |
protected ChunkedQueue<Node> |
PAG.edgeQueue |
protected ChunkedQueue<Node> |
PAG.edgeQueue |
java.util.Map<InvokeExpr,Node> |
PAG.virtualCallsToReceivers |
java.util.Map<InvokeExpr,Node> |
PAG.virtualCallsToReceivers |
| Modifier and Type | Method and Description |
|---|---|
protected <K extends Node> |
PAG.addToMap(java.util.Map<K,java.lang.Object> m,
K key,
Node value) |
protected <K extends Node> |
PAG.addToMap(java.util.Map<K,java.lang.Object> m,
K key,
Node value) |
protected <K extends Node> |
PAG.lookup(java.util.Map<K,java.lang.Object> m,
K key) |
protected <K extends Node> |
PAG.lookup(java.util.Map<K,java.lang.Object> m,
K key) |
| Modifier and Type | Method and Description |
|---|---|
Node[] |
PAG.allocInvLookup(VarNode key) |
Node[] |
PAG.allocInvLookup(VarNode key) |
Node[] |
PAG.allocLookup(AllocNode key) |
Node[] |
PAG.allocLookup(AllocNode key) |
Node |
FieldRefNode.getReplacement() |
Node |
Node.getReplacement()
If this node has been merged with another, returns the new node to be
used as the representative of this node; returns this if the node has
not been merged.
|
Node |
FieldRefNode.getReplacement() |
Node |
Node.getReplacement()
If this node has been merged with another, returns the new node to be
used as the representative of this node; returns this if the node has
not been merged.
|
Node[] |
PAG.loadInvLookup(VarNode key) |
Node[] |
PAG.loadInvLookup(VarNode key) |
Node[] |
PAG.loadLookup(FieldRefNode key) |
Node[] |
PAG.loadLookup(FieldRefNode key) |
protected <K extends Node> |
PAG.lookup(java.util.Map<K,java.lang.Object> m,
K key) |
protected <K extends Node> |
PAG.lookup(java.util.Map<K,java.lang.Object> m,
K key) |
Node |
MethodPAG.parameterize(Node n,
Context varNodeParameter) |
Node |
MethodPAG.parameterize(Node n,
Context varNodeParameter) |
Node[] |
PAG.simpleInvLookup(VarNode key) |
Node[] |
PAG.simpleInvLookup(VarNode key) |
Node[] |
PAG.simpleLookup(VarNode key) |
Node[] |
PAG.simpleLookup(VarNode key) |
Node[] |
PAG.storeInvLookup(FieldRefNode key) |
Node[] |
PAG.storeInvLookup(FieldRefNode key) |
Node[] |
PAG.storeLookup(VarNode key) |
Node[] |
PAG.storeLookup(VarNode key) |
| Modifier and Type | Method and Description |
|---|---|
Pair<Node,Node> |
PAG.addInterproceduralAssignment(Node from,
Node to,
Edge e) |
Pair<Node,Node> |
PAG.addInterproceduralAssignment(Node from,
Node to,
Edge e) |
Pair<Node,Node> |
PAG.addInterproceduralAssignment(Node from,
Node to,
Edge e) |
Pair<Node,Node> |
PAG.addInterproceduralAssignment(Node from,
Node to,
Edge e) |
QueueReader<Node> |
PAG.edgeReader() |
QueueReader<Node> |
PAG.edgeReader() |
java.util.Map<Node,Tag> |
PAG.getNodeTags() |
java.util.Map<Node,Tag> |
PAG.getNodeTags() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
PAG.addEdge(Node from,
Node to)
Adds an edge to the graph, returning false if it was already there.
|
boolean |
PAG.addEdge(Node from,
Node to)
Adds an edge to the graph, returning false if it was already there.
|
void |
MethodPAG.addInEdge(Node src,
Node dst) |
void |
MethodPAG.addInEdge(Node src,
Node dst) |
void |
MethodPAG.addInternalEdge(Node src,
Node dst) |
void |
MethodPAG.addInternalEdge(Node src,
Node dst) |
Pair<Node,Node> |
PAG.addInterproceduralAssignment(Node from,
Node to,
Edge e) |
Pair<Node,Node> |
PAG.addInterproceduralAssignment(Node from,
Node to,
Edge e) |
void |
MethodPAG.addOutEdge(Node src,
Node dst) |
void |
MethodPAG.addOutEdge(Node src,
Node dst) |
protected <K extends Node> |
PAG.addToMap(java.util.Map<K,java.lang.Object> m,
K key,
Node value) |
protected <K extends Node> |
PAG.addToMap(java.util.Map<K,java.lang.Object> m,
K key,
Node value) |
protected void |
PAGDumper.dumpNode(Node n,
java.io.PrintWriter out) |
protected void |
PAGDumper.dumpNode(Node n,
java.io.PrintWriter out) |
static java.lang.String |
PagToDotDumper.makeDotNodeLabel(Node n,
Predicate<Node> p)
Generate a node declaration for a dot file.
|
static java.lang.String |
PagToDotDumper.makeDotNodeLabel(Node n,
Predicate<Node> p)
Generate a node declaration for a dot file.
|
static java.lang.String |
PagToDotDumper.makeNodeName(Node n) |
static java.lang.String |
PagToDotDumper.makeNodeName(Node n) |
void |
Node.mergeWith(Node other)
Merge with the node other.
|
void |
Node.mergeWith(Node other)
Merge with the node other.
|
Node |
MethodPAG.parameterize(Node n,
Context varNodeParameter) |
Node |
MethodPAG.parameterize(Node n,
Context varNodeParameter) |
| Modifier and Type | Method and Description |
|---|---|
java.util.Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
java.util.Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
java.util.Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
java.util.Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
static java.lang.String |
PagToDotDumper.makeDotNodeLabel(Node n,
Predicate<Node> p)
Generate a node declaration for a dot file.
|
static java.lang.String |
PagToDotDumper.makeDotNodeLabel(Node n,
Predicate<Node> p)
Generate a node declaration for a dot file.
|
| Modifier and Type | Field and Description |
|---|---|
Node |
SharedListSet.Pair.first |
Node |
SharedListSet.Pair.first |
| Modifier and Type | Method and Description |
|---|---|
boolean |
BitPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
DoublePointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
EmptyPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
HashPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
HybridPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
PointsToBitVector.add(Node n)
Adds n to this
|
abstract boolean |
PointsToSetInternal.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
SharedHybridSet.add(Node n) |
boolean |
SharedListSet.add(Node n) |
boolean |
SortedArraySet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
abstract boolean |
PointsToSetInternal.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
BitPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
SortedArraySet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
EmptyPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
DoublePointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
HashPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
HybridPointsToSet.add(Node n)
Adds n to this set, returns true if n was not already in this set.
|
boolean |
SharedListSet.add(Node n) |
boolean |
PointsToBitVector.add(Node n)
Adds n to this
|
boolean |
SharedHybridSet.add(Node n) |
boolean |
BitPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
DoublePointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
EmptyPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
HashPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
HybridPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
PointsToBitVector.contains(Node n) |
abstract boolean |
PointsToSetInternal.contains(Node n)
Returns true iff the set contains n.
|
boolean |
SharedHybridSet.contains(Node n)
When the overflow list overflows, the maximum number of elements that may
remain in the overflow list (the rest are moved into the base bit vector)
|
boolean |
SharedListSet.contains(Node n) |
boolean |
SortedArraySet.contains(Node n)
Returns true iff the set contains n.
|
abstract boolean |
PointsToSetInternal.contains(Node n)
Returns true iff the set contains n.
|
boolean |
BitPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
SortedArraySet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
EmptyPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
DoublePointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
HashPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
HybridPointsToSet.contains(Node n)
Returns true iff the set contains n.
|
boolean |
SharedListSet.contains(Node n) |
boolean |
PointsToBitVector.contains(Node n) |
boolean |
SharedHybridSet.contains(Node n)
When the overflow list overflows, the maximum number of elements that may
remain in the overflow list (the rest are moved into the base bit vector)
|
protected boolean |
HybridPointsToSet.fastAdd(Node n) |
protected boolean |
HybridPointsToSet.fastAdd(Node n) |
abstract void |
P2SetVisitor.visit(Node n) |
abstract void |
P2SetVisitor.visit(Node n) |
| Constructor and Description |
|---|
SharedListSet.ListNode(Node elem,
SharedListSet.ListNode next) |
SharedListSet.ListNode(Node elem,
SharedListSet.ListNode next) |
SharedListSet.Pair(Node first,
SharedListSet.ListNode second) |
SharedListSet.Pair(Node first,
SharedListSet.ListNode second) |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Set<Node> |
PropMerge.varNodeWorkList |
protected java.util.Set<Node> |
PropMerge.varNodeWorkList |
| Modifier and Type | Method and Description |
|---|---|
protected void |
Checker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
protected void |
MergeChecker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
protected void |
Checker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
protected void |
MergeChecker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
protected void |
Checker.checkNode(Node container,
Node n,
Node upstream) |
protected void |
MergeChecker.checkNode(Node container,
Node n,
Node upstream) |
protected void |
Checker.checkNode(Node container,
Node n,
Node upstream) |
protected void |
MergeChecker.checkNode(Node container,
Node n,
Node upstream) |
void |
OnFlyCallGraph.mergedWith(Node n1,
Node n2)
Node uses this to notify PAG that n2 has been merged into n1.
|
void |
OnFlyCallGraph.mergedWith(Node n1,
Node n2)
Node uses this to notify PAG that n2 has been merged into n1.
|