public class GeomQueries
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected int[] |
block_num |
protected CgEdge[] |
call_graph |
protected GeomPointsTo |
geomPTA |
protected long[] |
max_context_size_block |
protected int |
n_func |
protected int[] |
rep_cg |
protected int[] |
scc_size |
protected int[] |
top_rank |
protected int[] |
vis_cg |
| Constructor and Description |
|---|
GeomQueries(GeomPointsTo geom_pta)
We copy and make a condensed version of call graph.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
contexsByAnyCallEdge(Edge sootEdge,
Local l,
PtSensVisitor visitor)
Deprecated.
|
boolean |
contextsByAnyCallEdge(Edge sootEdge,
Local l,
SparkField field,
PtSensVisitor visitor)
Deprecated.
|
boolean |
contextsByCallChain(Edge[] callEdgeChain,
Local l,
PtSensVisitor visitor)
Deprecated.
|
boolean |
contextsByCallChain(Edge[] callEdgeChain,
Local l,
SparkField field,
PtSensVisitor visitor)
Deprecated.
|
boolean |
contextsGoBy(Edge sootEdge,
Local l,
PtSensVisitor visitor)
Answer contexts-go-by query.
|
boolean |
contextsGoBy(Edge sootEdge,
Local l,
SparkField field,
PtSensVisitor visitor)
Searching the points-to results for field expression such as p.f.
|
protected boolean |
dfsScanSubgraph(int s,
int target)
Retrieve the subgraph from s->target.
|
boolean |
isAlias(IVarAbstraction pn1,
IVarAbstraction pn2)
Test if two pointers given in geomPTA form are an alias under any contexts.
|
boolean |
isAlias(Local l1,
Local l2)
Decide if under any contexts, pointers @param l1 and @param l2 can be an alias.
|
boolean |
isAliasCI(Local l1,
Local l2)
Are the two pointers an alias with context insensitive points-to information?
|
boolean |
kCFA(Edge[] callEdgeChain,
Local l,
PtSensVisitor visitor)
Standard K-CFA querying for arbitrary K.
|
boolean |
kCFA(Edge[] callEdgeChain,
Local l,
SparkField field,
PtSensVisitor visitor)
Standard K-CFA querying for field expression.
|
protected boolean |
propagateIntervals(int start,
long L,
long R,
int target)
Compute the mapping from interval [L, R) of method start to the intervals of method target.
|
protected void |
transferInSCC(int s,
int t,
long L,
long R,
ContextsCollector tContexts) |
protected GeomPointsTo geomPTA
protected int n_func
protected CgEdge[] call_graph
protected int[] vis_cg
protected int[] rep_cg
protected int[] scc_size
protected int[] block_num
protected long[] max_context_size_block
protected int[] top_rank
public GeomQueries(GeomPointsTo geom_pta)
geom_pts - protected boolean dfsScanSubgraph(int s,
int target)
s - target - protected void transferInSCC(int s,
int t,
long L,
long R,
ContextsCollector tContexts)
protected boolean propagateIntervals(int start,
long L,
long R,
int target)
start - L - R - target - public boolean contextsGoBy(Edge sootEdge, Local l, PtSensVisitor visitor)
sootEdge: - the specified context edge in soot edge formatl: - the querying pointervisitor: - container for querying result@Deprecated public boolean contexsByAnyCallEdge(Edge sootEdge, Local l, PtSensVisitor visitor)
public boolean contextsGoBy(Edge sootEdge, Local l, SparkField field, PtSensVisitor visitor)
sootEdge - l - field - visitor - @Deprecated public boolean contextsByAnyCallEdge(Edge sootEdge, Local l, SparkField field, PtSensVisitor visitor)
public boolean kCFA(Edge[] callEdgeChain, Local l, PtSensVisitor visitor)
callEdgeChain: - last K call edges leading to the method that contains l. callEdgeChain[0] is the farthest call edge in the chain.l: - the querying pointervisitor: - the querying result container@Deprecated public boolean contextsByCallChain(Edge[] callEdgeChain, Local l, PtSensVisitor visitor)
public boolean kCFA(Edge[] callEdgeChain, Local l, SparkField field, PtSensVisitor visitor)
callEdgeChain: - callEdgeChain[0] is the farthest call edge in the chain.l - field - visitor - @Deprecated public boolean contextsByCallChain(Edge[] callEdgeChain, Local l, SparkField field, PtSensVisitor visitor)
public boolean isAliasCI(Local l1, Local l2)
public boolean isAlias(IVarAbstraction pn1, IVarAbstraction pn2)
pn1 - and @param pn2 cannot be null.