Modifier and Type | Method and Description |
---|---|
protected void |
SparkTransformer.addTag(Host h,
Node n,
Map<Node,Tag> nodeToTag,
Tag unknown) |
protected void |
SparkTransformer.addTag(Host h,
Node n,
Map<Node,Tag> nodeToTag,
Tag unknown) |
Modifier and Type | Method and Description |
---|---|
protected void |
SparkTransformer.addTag(Host h,
Node n,
Map<Node,Tag> nodeToTag,
Tag unknown) |
protected void |
SparkTransformer.addTag(Host h,
Node n,
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 Map<Node,List<VarType>> |
PtSensVisitor.tableView |
protected Map<Node,List<VarType>> |
PtSensVisitor.tableView |
Modifier and Type | Method and Description |
---|---|
List<VarType> |
PtSensVisitor.getCSList(Node var)
Obtain the list of context sensitive objects pointed to by var.
|
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 |
---|---|
Map<Node,IVarAbstraction> |
GeomPointsTo.consG |
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(Set<Node> initVars)
Compute the refined points-to results for specified pointers.
|
void |
OfflineProcessor.addUserDefPts(Set<Node> initVars)
Compute the refined points-to results for specified pointers.
|
void |
GeomPointsTo.ddSolve(Set<Node> qryNodes)
The demand-driven mode for precisely computing points-to information for given pointers.
|
void |
GeomPointsTo.ddSolve(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.
|
Constructor and Description |
---|
SparkLibraryHelper(PAG pag,
Node node,
SootMethod method)
The constructor for this
TypeSwitch . |
SparkLibraryHelper(PAG pag,
Node node,
SootMethod method)
The constructor for this
TypeSwitch . |
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 |
NewInstanceNode
Node that represents a call to newInstance()
|
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 |
---|---|
protected Map<Pair<Node,Node>,Set<Edge>> |
PAG.assign2edges |
protected Map<Pair<Node,Node>,Set<Edge>> |
PAG.assign2edges |
protected Map<Pair<Node,Node>,Set<Edge>> |
PAG.assign2edges |
protected Map<Pair<Node,Node>,Set<Edge>> |
PAG.assign2edges |
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 |
Map<InvokeExpr,Node> |
PAG.virtualCallsToReceivers |
Map<InvokeExpr,Node> |
PAG.virtualCallsToReceivers |
Modifier and Type | Method and Description |
---|---|
protected <K extends Node> |
PAG.addToMap(Map<K,Object> m,
K key,
Node value) |
protected <K extends Node> |
PAG.addToMap(Map<K,Object> m,
K key,
Node value) |
protected <K extends Node> |
PAG.lookup(Map<K,Object> m,
K key) |
protected <K extends Node> |
PAG.lookup(Map<K,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[] |
PAG.assignInstanceLookup(NewInstanceNode key) |
Node[] |
PAG.assignInstanceLookup(NewInstanceNode 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(Map<K,Object> m,
K key) |
protected <K extends Node> |
PAG.lookup(Map<K,Object> m,
K key) |
Node[] |
PAG.newInstanceLookup(VarNode key) |
Node[] |
PAG.newInstanceLookup(VarNode 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() |
Map<Node,Tag> |
PAG.getNodeTags() |
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(Map<K,Object> m,
K key,
Node value) |
protected <K extends Node> |
PAG.addToMap(Map<K,Object> m,
K key,
Node value) |
protected void |
PAGDumper.dumpNode(Node n,
PrintWriter out) |
protected void |
PAGDumper.dumpNode(Node n,
PrintWriter out) |
static String |
PagToDotDumper.makeDotNodeLabel(Node n,
Predicate<Node> p)
Generate a node declaration for a dot file.
|
static String |
PagToDotDumper.makeDotNodeLabel(Node n,
Predicate<Node> p)
Generate a node declaration for a dot file.
|
static String |
PagToDotDumper.makeNodeName(Node n) |
static 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 |
---|---|
Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
Set<Edge> |
PAG.lookupEdgesForAssignment(Pair<Node,Node> val) |
static String |
PagToDotDumper.makeDotNodeLabel(Node n,
Predicate<Node> p)
Generate a node declaration for a dot file.
|
static 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 |
---|
ListNode(Node elem,
SharedListSet.ListNode next) |
ListNode(Node elem,
SharedListSet.ListNode next) |
Pair(Node first,
SharedListSet.ListNode second) |
Pair(Node first,
SharedListSet.ListNode second) |
Modifier and Type | Field and Description |
---|---|
protected Set<Node> |
PropMerge.varNodeWorkList |
protected 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.
|