Modifier and Type | Field and Description |
---|---|
Map<AllocNode,GeometricManager> |
FullSensitiveNode.new_pts |
Map<AllocNode,GeometricManager> |
FullSensitiveNode.new_pts |
Map<AllocNode,GeometricManager> |
FullSensitiveNode.pt_objs |
Map<AllocNode,GeometricManager> |
FullSensitiveNode.pt_objs |
Modifier and Type | Method and Description |
---|---|
Set<AllocNode> |
FullSensitiveNode.get_all_points_to_objects() |
Set<AllocNode> |
FullSensitiveNode.get_all_points_to_objects() |
Modifier and Type | Method and Description |
---|---|
boolean |
FullSensitiveNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
boolean |
FullSensitiveNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
boolean |
FullSensitiveNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
boolean |
FullSensitiveNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
int |
FullSensitiveNode.count_pts_intervals(AllocNode obj) |
int |
FullSensitiveNode.count_pts_intervals(AllocNode obj) |
boolean |
FullSensitiveNode.isDeadObject(AllocNode obj) |
boolean |
FullSensitiveNode.isDeadObject(AllocNode obj) |
boolean |
FullSensitiveNode.pointer_interval_points_to(long l,
long r,
AllocNode obj) |
boolean |
FullSensitiveNode.pointer_interval_points_to(long l,
long r,
AllocNode obj) |
void |
FullSensitiveNode.remove_points_to(AllocNode obj) |
void |
FullSensitiveNode.remove_points_to(AllocNode obj) |
Modifier and Type | Method and Description |
---|---|
Set<AllocNode> |
DummyNode.get_all_points_to_objects() |
abstract Set<AllocNode> |
IVarAbstraction.get_all_points_to_objects()
Obtain context insensitive points-to result (by removing contexts).
|
Set<AllocNode> |
DummyNode.get_all_points_to_objects() |
abstract Set<AllocNode> |
IVarAbstraction.get_all_points_to_objects()
Obtain context insensitive points-to result (by removing contexts).
|
Modifier and Type | Method and Description |
---|---|
boolean |
DummyNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
abstract boolean |
IVarAbstraction.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
boolean |
DummyNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
abstract boolean |
IVarAbstraction.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
boolean |
DummyNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
abstract boolean |
IVarAbstraction.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
boolean |
DummyNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
abstract boolean |
IVarAbstraction.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
int |
DummyNode.count_pts_intervals(AllocNode obj) |
abstract int |
IVarAbstraction.count_pts_intervals(AllocNode obj) |
int |
DummyNode.count_pts_intervals(AllocNode obj) |
abstract int |
IVarAbstraction.count_pts_intervals(AllocNode obj) |
IVarAbstraction |
GeomPointsTo.findAndInsertInstanceField(AllocNode obj,
SparkField field)
Obtain or create an internal representation of an object field.
|
IVarAbstraction |
GeomPointsTo.findAndInsertInstanceField(AllocNode obj,
SparkField field)
Obtain or create an internal representation of an object field.
|
IVarAbstraction |
GeomPointsTo.findInstanceField(AllocNode obj,
SparkField field)
Obtain the internal representation of an object field.
|
IVarAbstraction |
GeomPointsTo.findInstanceField(AllocNode obj,
SparkField field)
Obtain the internal representation of an object field.
|
boolean |
DummyNode.isDeadObject(AllocNode obj) |
abstract boolean |
IVarAbstraction.isDeadObject(AllocNode obj)
Test if the particular object has been obsoleted.
|
boolean |
DummyNode.isDeadObject(AllocNode obj) |
abstract boolean |
IVarAbstraction.isDeadObject(AllocNode obj)
Test if the particular object has been obsoleted.
|
boolean |
DummyNode.pointer_interval_points_to(long l,
long r,
AllocNode obj) |
abstract boolean |
IVarAbstraction.pointer_interval_points_to(long l,
long r,
AllocNode obj)
Test if the pointer in the context range [l, R) points to object obj.
|
boolean |
DummyNode.pointer_interval_points_to(long l,
long r,
AllocNode obj) |
abstract boolean |
IVarAbstraction.pointer_interval_points_to(long l,
long r,
AllocNode obj)
Test if the pointer in the context range [l, R) points to object obj.
|
PointsToSet |
GeomPointsTo.reachingObjects(AllocNode an,
SootField f) |
PointsToSet |
GeomPointsTo.reachingObjects(AllocNode an,
SootField f) |
void |
DummyNode.remove_points_to(AllocNode obj) |
abstract void |
IVarAbstraction.remove_points_to(AllocNode obj) |
void |
DummyNode.remove_points_to(AllocNode obj) |
abstract void |
IVarAbstraction.remove_points_to(AllocNode obj) |
Modifier and Type | Field and Description |
---|---|
Map<AllocNode,HeapInsIntervalManager> |
HeapInsNode.new_pts |
Map<AllocNode,HeapInsIntervalManager> |
HeapInsNode.new_pts |
HashMap<AllocNode,HeapInsIntervalManager> |
HeapInsNode.pt_objs |
HashMap<AllocNode,HeapInsIntervalManager> |
HeapInsNode.pt_objs |
Modifier and Type | Method and Description |
---|---|
Set<AllocNode> |
HeapInsNode.get_all_points_to_objects() |
Set<AllocNode> |
HeapInsNode.get_all_points_to_objects() |
Modifier and Type | Method and Description |
---|---|
boolean |
HeapInsNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
boolean |
HeapInsNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L) |
boolean |
HeapInsNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
boolean |
HeapInsNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2) |
int |
HeapInsNode.count_pts_intervals(AllocNode obj) |
int |
HeapInsNode.count_pts_intervals(AllocNode obj) |
boolean |
HeapInsNode.isDeadObject(AllocNode obj) |
boolean |
HeapInsNode.isDeadObject(AllocNode obj) |
boolean |
HeapInsNode.pointer_interval_points_to(long l,
long r,
AllocNode obj) |
boolean |
HeapInsNode.pointer_interval_points_to(long l,
long r,
AllocNode obj) |
void |
HeapInsNode.remove_points_to(AllocNode obj) |
void |
HeapInsNode.remove_points_to(AllocNode obj) |
Modifier and Type | Field and Description |
---|---|
Map<AllocNode,PtInsIntervalManager> |
PtInsNode.new_pts
Deprecated.
|
Map<AllocNode,PtInsIntervalManager> |
PtInsNode.new_pts
Deprecated.
|
Map<AllocNode,PtInsIntervalManager> |
PtInsNode.pt_objs
Deprecated.
|
Map<AllocNode,PtInsIntervalManager> |
PtInsNode.pt_objs
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
Set<AllocNode> |
PtInsNode.get_all_points_to_objects()
Deprecated.
|
Set<AllocNode> |
PtInsNode.get_all_points_to_objects()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
boolean |
PtInsNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L)
Deprecated.
|
boolean |
PtInsNode.add_points_to_3(AllocNode obj,
long I1,
long I2,
long L)
Deprecated.
|
boolean |
PtInsNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2)
Deprecated.
|
boolean |
PtInsNode.add_points_to_4(AllocNode obj,
long I1,
long I2,
long L1,
long L2)
Deprecated.
|
int |
PtInsNode.count_pts_intervals(AllocNode obj)
Deprecated.
|
int |
PtInsNode.count_pts_intervals(AllocNode obj)
Deprecated.
|
boolean |
PtInsNode.isDeadObject(AllocNode obj)
Deprecated.
|
boolean |
PtInsNode.isDeadObject(AllocNode obj)
Deprecated.
|
boolean |
PtInsNode.pointer_interval_points_to(long l,
long r,
AllocNode obj)
Deprecated.
|
boolean |
PtInsNode.pointer_interval_points_to(long l,
long r,
AllocNode obj)
Deprecated.
|
void |
PtInsNode.remove_points_to(AllocNode obj)
Deprecated.
|
void |
PtInsNode.remove_points_to(AllocNode obj)
Deprecated.
|
Modifier and Type | Field and Description |
---|---|
protected QueueReader<AllocNode> |
TypeManager.allocNodeListener |
protected QueueReader<AllocNode> |
TypeManager.allocNodeListener |
Modifier and Type | Field and Description |
---|---|
AllocNode |
AllocAndContext.alloc |
AllocNode |
AllocAndContext.alloc |
Modifier and Type | Method and Description |
---|---|
void |
DotPointerGraph.addNew(AllocNode from,
VarNode to) |
void |
DotPointerGraph.addNew(AllocNode from,
VarNode to) |
protected Set<VarNode> |
DemandCSPointsTo.computeFlowsTo(AllocNode alloc,
HeuristicType heuristic)
compute a flows-to set for an allocation site.
|
protected Set<VarNode> |
DemandCSPointsTo.computeFlowsTo(AllocNode alloc,
HeuristicType heuristic)
compute a flows-to set for an allocation site.
|
protected void |
DemandCSPointsTo.dumpPathForLoc(VarNode v,
AllocNode badLoc,
String filePrefix) |
protected void |
DemandCSPointsTo.dumpPathForLoc(VarNode v,
AllocNode badLoc,
String filePrefix) |
abstract void |
DemandCSPointsTo.IncomingEdgeHandler.handleAlloc(AllocNode allocNode,
DemandCSPointsTo.VarAndContext origVarAndContext) |
abstract void |
DemandCSPointsTo.IncomingEdgeHandler.handleAlloc(AllocNode allocNode,
DemandCSPointsTo.VarAndContext origVarAndContext) |
Constructor and Description |
---|
AllocAndContext(AllocNode alloc,
ImmutableStack<Integer> context) |
AllocAndContext(AllocNode alloc,
ImmutableStack<Integer> context) |
Modifier and Type | Method and Description |
---|---|
boolean |
AllocationSiteHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack)
handle a particular allocation site
|
boolean |
AllocationSiteHandler.PointsToSetHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack) |
boolean |
AllocationSiteHandler.CastCheckHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack) |
boolean |
AllocationSiteHandler.VirtualCallHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack) |
boolean |
AllocationSiteHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack)
handle a particular allocation site
|
boolean |
AllocationSiteHandler.PointsToSetHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack) |
boolean |
AllocationSiteHandler.CastCheckHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack) |
boolean |
AllocationSiteHandler.VirtualCallHandler.handleAllocationSite(AllocNode allocNode,
ImmutableStack<Integer> callStack) |
Modifier and Type | Class and Description |
---|---|
class |
ClassConstantNode
Represents an allocation site node the represents a known java.lang.Class
object.
|
class |
StringConstantNode
Represents an allocation site node the represents a constant string.
|
Modifier and Type | Field and Description |
---|---|
protected AllocNode |
AllocDotField.base |
protected AllocNode |
AllocDotField.base |
Modifier and Type | Field and Description |
---|---|
protected Map<AllocNode,Object> |
PAG.alloc |
protected Map<AllocNode,Object> |
PAG.alloc |
Modifier and Type | Method and Description |
---|---|
AllocNode |
AllocDotField.getBase()
Returns the base AllocNode.
|
AllocNode |
AllocDotField.getBase()
Returns the base AllocNode.
|
AllocNode |
PAG.makeAllocNode(Object newExpr,
Type type,
SootMethod m) |
AllocNode |
PAG.makeAllocNode(Object newExpr,
Type type,
SootMethod m) |
AllocNode |
PAG.makeClassConstantNode(ClassConstant cc) |
AllocNode |
PAG.makeClassConstantNode(ClassConstant cc) |
AllocNode |
PAG.makeStringConstantNode(String s) |
AllocNode |
PAG.makeStringConstantNode(String s) |
Modifier and Type | Method and Description |
---|---|
QueueReader<AllocNode> |
PAG.allocNodeListener() |
QueueReader<AllocNode> |
PAG.allocNodeListener() |
Set<AllocNode> |
PAG.allocSources() |
Set<AllocNode> |
PAG.allocSources() |
Iterator<AllocNode> |
PAG.allocSourcesIterator() |
Iterator<AllocNode> |
PAG.allocSourcesIterator() |
ArrayNumberer<AllocNode> |
PAG.getAllocNodeNumberer() |
ArrayNumberer<AllocNode> |
PAG.getAllocNodeNumberer() |
Modifier and Type | Method and Description |
---|---|
boolean |
PAG.addAllocEdge(AllocNode from,
VarNode to) |
boolean |
PAG.addAllocEdge(AllocNode from,
VarNode to) |
Node[] |
PAG.allocLookup(AllocNode key) |
Node[] |
PAG.allocLookup(AllocNode key) |
boolean |
PAG.doAddAllocEdge(AllocNode from,
VarNode to) |
boolean |
PAG.doAddAllocEdge(AllocNode from,
VarNode to) |
AllocDotField |
PAG.findAllocDotField(AllocNode an,
SparkField field)
Finds the AllocDotField for base AllocNode an and field field, or returns
null.
|
AllocDotField |
PAG.findAllocDotField(AllocNode an,
SparkField field)
Finds the AllocDotField for base AllocNode an and field field, or returns
null.
|
AllocDotField |
PAG.makeAllocDotField(AllocNode an,
SparkField field)
Finds or creates the AllocDotField for base variable baseValue and field
field, of type t.
|
AllocDotField |
PAG.makeAllocDotField(AllocNode an,
SparkField field)
Finds or creates the AllocDotField for base variable baseValue and field
field, of type t.
|
static String |
PagToDotDumper.makeLabel(AllocNode n) |
static String |
PagToDotDumper.makeLabel(AllocNode n) |
Modifier and Type | Method and Description |
---|---|
protected void |
Checker.handleAllocNode(AllocNode src) |
protected void |
MergeChecker.handleAllocNode(AllocNode src) |
protected boolean |
PropAlias.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropIter.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropMerge.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropWorklist.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropWorklist.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropIter.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropMerge.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
protected void |
Checker.handleAllocNode(AllocNode src) |
protected void |
MergeChecker.handleAllocNode(AllocNode src) |
protected boolean |
PropAlias.handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.
|
Modifier and Type | Field and Description |
---|---|
protected Map<AllocNode,String> |
PegGraph.allocNodeToObj |
protected Map<AllocNode,String> |
PegGraph.allocNodeToObj |
protected Map<AllocNode,PegChain> |
PegGraph.allocNodeToThread |
protected Map<AllocNode,PegChain> |
PegGraph.allocNodeToThread |
Modifier and Type | Method and Description |
---|---|
protected Map<AllocNode,String> |
PegGraph.getAllocNodeToObj() |
protected Map<AllocNode,String> |
PegGraph.getAllocNodeToObj() |
Map<AllocNode,PegChain> |
PegGraph.getAllocNodeToThread() |
Map<AllocNode,PegChain> |
PegGraph.getAllocNodeToThread() |
Map<Stmt,List<AllocNode>> |
StartJoinAnalysis.getStartToAllocNodes() |
Map<Stmt,List<AllocNode>> |
StartJoinFinder.getStartToAllocNodes() |
Map<Stmt,List<AllocNode>> |
StartJoinAnalysis.getStartToAllocNodes() |
Map<Stmt,List<AllocNode>> |
StartJoinFinder.getStartToAllocNodes() |
Constructor and Description |
---|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set<Object> methodsNeedingInlining,
Set<AllocNode> allocNodes,
List inlineSites,
Map synchObj,
Set<AllocNode> multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
SootMethod sm,
boolean addExceptionEdges,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set<Object> methodsNeedingInlining,
Set<AllocNode> allocNodes,
List inlineSites,
Map synchObj,
Set<AllocNode> multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
SootMethod sm,
boolean addExceptionEdges,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set<Object> methodsNeedingInlining,
Set<AllocNode> allocNodes,
List inlineSites,
Map synchObj,
Set<AllocNode> multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
SootMethod sm,
boolean addExceptionEdges,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set<Object> methodsNeedingInlining,
Set<AllocNode> allocNodes,
List inlineSites,
Map synchObj,
Set<AllocNode> multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
SootMethod sm,
boolean addExceptionEdges,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set methodsNeedingInlining,
Set allocNodes,
List<List> inlineSites,
Map<SootMethod,String> synchObj,
Set multiRunAllocNodes,
Map<AllocNode,String> allocNodeToObj,
Body unitBody,
String threadName,
SootMethod sm,
boolean addExceEdge,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set methodsNeedingInlining,
Set allocNodes,
List<List> inlineSites,
Map<SootMethod,String> synchObj,
Set multiRunAllocNodes,
Map<AllocNode,String> allocNodeToObj,
Body unitBody,
String threadName,
SootMethod sm,
boolean addExceEdge,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
Modifier and Type | Method and Description |
---|---|
Set<AllocNode> |
AllocNodesFinder.getAllocNodes() |
Set<AllocNode> |
AllocNodesFinder.getAllocNodes() |
Set<AllocNode> |
AllocNodesFinder.getMultiRunAllocNodes() |
Set<AllocNode> |
AllocNodesFinder.getMultiRunAllocNodes() |