| Modifier and Type | Field and Description |
|---|---|
protected Map<DemandCSPointsTo.VarAndContext,Pair<PointsToSetInternal,AllocAndContextSet>> |
DemandCSPointsTo.contextsForAllocsCache |
| Modifier and Type | Method and Description |
|---|---|
protected PointsToSetInternal |
DemandCSPointsTo.checkContextsForAllocsCache(DemandCSPointsTo.VarAndContext varAndContext,
AllocAndContextSet ret,
PointsToSetInternal locs) |
PointsToSetInternal |
WrappedPointsToSet.getWrapped() |
| Modifier and Type | Method and Description |
|---|---|
protected PointsToSetInternal |
DemandCSPointsTo.checkContextsForAllocsCache(DemandCSPointsTo.VarAndContext varAndContext,
AllocAndContextSet ret,
PointsToSetInternal locs) |
protected AllocAndContextSet |
DemandCSPointsTo.findContextsForAllocs(DemandCSPointsTo.VarAndContext varAndContext,
PointsToSetInternal locs) |
protected Set<SootMethod> |
DemandCSPointsTo.getCallTargets(PointsToSetInternal p2Set,
NumberedString methodStr,
Type receiverType,
Set<SootMethod> possibleTargets) |
abstract void |
DemandCSPointsTo.IncomingEdgeHandler.handleMatchSrc(VarNode matchSrc,
PointsToSetInternal intersection,
VarNode loadBase,
VarNode storeBase,
DemandCSPointsTo.VarAndContext origVarAndContext,
SparkField field,
boolean refine) |
protected Set<VarNode> |
DemandCSPointsTo.nodesPropagatedThrough(VarNode source,
PointsToSetInternal allocs) |
protected boolean |
DemandCSPointsTo.refineAlias(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineAliasInternal(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineP2Set(DemandCSPointsTo.VarAndContext varAndContext,
PointsToSetInternal badLocs) |
protected boolean |
DemandCSPointsTo.refineP2Set(VarNode v,
PointsToSetInternal badLocs,
HeuristicType heuristic) |
| Constructor and Description |
|---|
WrappedPointsToSet(PointsToSetInternal wrapped) |
| Modifier and Type | Method and Description |
|---|---|
static PointsToSetInternal |
SootUtil.constructIntersection(PointsToSetInternal set1,
PointsToSetInternal set2,
PAG pag) |
PointsToSetInternal |
AllocationSiteHandler.PointsToSetHandler.getP2set() |
| Modifier and Type | Method and Description |
|---|---|
static PointsToSetInternal |
SootUtil.constructIntersection(PointsToSetInternal set1,
PointsToSetInternal set2,
PAG pag) |
void |
AllocationSiteHandler.PointsToSetHandler.setP2set(PointsToSetInternal p2set) |
| Modifier and Type | Field and Description |
|---|---|
protected PointsToSetInternal |
Node.p2set |
| Modifier and Type | Method and Description |
|---|---|
PointsToSetInternal |
Node.getP2Set()
Returns the points-to set for this node.
|
PointsToSetInternal |
Node.makeP2Set()
Returns the points-to set for this node, makes it if necessary.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Node.setP2Set(PointsToSetInternal ptsInternal)
Use the specified points-to set to replace current one
|
| Modifier and Type | Class and Description |
|---|---|
class |
P2SetFactory<T extends PointsToSetInternal>
Abstract base class for points-to set factory.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BitPointsToSet
Implementation of points-to set using a bit vector.
|
class |
DoublePointsToSet
Implementation of points-to set that holds two sets: one for new elements that have not yet been propagated, and the other
for elements that have already been propagated.
|
class |
EmptyPointsToSet
Implementation of an empty, immutable points-to set.
|
class |
HashPointsToSet
HashSet implementation of points-to set.
|
class |
HybridPointsToSet
Hybrid implementation of points-to set, which uses an explicit array for small sets, and a bit vector for large sets.
|
class |
SharedHybridSet
A shared representation of a points-to set which uses a bit vector + a list of extra elements, an "overflow list", to make
adding single elements fast in most cases.
|
class |
SharedListSet
Implementation of a points-to set as a sorted list of elements, but where similar lists share parts of their data.
|
class |
SortedArraySet
Implementation of points-to set using a sorted array.
|
| Modifier and Type | Field and Description |
|---|---|
protected PointsToSetInternal |
DoublePointsToSet.newSet |
protected PointsToSetInternal |
DoublePointsToSet.oldSet |
| Modifier and Type | Method and Description |
|---|---|
PointsToSetInternal |
DoublePointsToSet.getNewSet()
Returns set of newly-added nodes since last call to flushNew.
|
PointsToSetInternal |
PointsToSetInternal.getNewSet()
Returns set of newly-added nodes since last call to flushNew.
|
PointsToSetInternal |
DoublePointsToSet.getOldSet()
Returns set of nodes already present before last call to flushNew.
|
PointsToSetInternal |
PointsToSetInternal.getOldSet()
Returns set of nodes already present before last call to flushNew.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
DoublePointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.
|
boolean |
HashPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.
|
boolean |
HybridPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.
|
boolean |
SortedArraySet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.
|
boolean |
SharedHybridSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude) |
boolean |
EmptyPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.
|
boolean |
BitPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.
|
boolean |
SharedListSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude) |
boolean |
PointsToSetInternal.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other minus the contents of exclude into this set; returns true if this set changed.
|
protected BitVector |
PointsToSetInternal.getBitMask(PointsToSetInternal other,
PAG pag) |
void |
DoublePointsToSet.mergeWith(PointsToSetInternal other)
Merges other into this set.
|
void |
PointsToSetInternal.mergeWith(PointsToSetInternal other)
Merges other into this set.
|
| Modifier and Type | Field and Description |
|---|---|
protected LargeNumberedMap<FieldRefNode,PointsToSetInternal> |
PropAlias.loadSets |
| Modifier and Type | Method and Description |
|---|---|
protected PointsToSetInternal |
PropAlias.getP2Set(FieldRefNode n) |
protected PointsToSetInternal |
PropAlias.makeP2Set(FieldRefNode n) |
| 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) |
void |
OnFlyCallGraph.updatedFieldRef(AllocDotField df,
PointsToSetInternal ptsi) |
| Modifier and Type | Method and Description |
|---|---|
MutableEdgeLabelledDirectedGraph<Integer,soot.jimple.toolkits.thread.synchronization.CriticalSection> |
DeadlockDetector.detectLocksetDeadlock(Map<Value,Integer> lockToLockNum,
List<PointsToSetInternal> lockPTSets) |
protected void |
LockAllocator.findLockableReferences(List<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions,
PointsToAnalysis pta,
CriticalSectionAwareSideEffectAnalysis tasea,
Map<Value,Integer> lockToLockNum,
List<PointsToSetInternal> lockPTSets) |
Copyright © 2020 Soot OSS. All rights reserved.