|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object soot.jimple.spark.sets.PointsToSetInternal soot.jimple.spark.sets.SharedHybridSet
public 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. The bit vector may be shared by multiple points-to sets, while the overflow list is specific to each points-to set. To facilitate sharing of the bitvectors, there is a "hash table" of all existing bitvectors kept, called BitVectorLookupMap, where the ith element contains a list of all existing bitvectors of cardinality i (i.e. has i one bits).
Nested Class Summary |
---|
Nested classes/interfaces inherited from class soot.jimple.spark.sets.PointsToSetInternal |
---|
PointsToSetInternal.P2SetVisitorDefaultTrue, PointsToSetInternal.P2SetVisitorInt |
Field Summary | |
---|---|
static int |
OVERFLOW_SIZE
|
static int |
OVERFLOW_THRESHOLD
The max number of elements allowed in the set before creating a new bitvector for it. |
Fields inherited from class soot.jimple.spark.sets.PointsToSetInternal |
---|
type |
Constructor Summary | |
---|---|
SharedHybridSet(Type type,
PAG pag)
|
Method Summary | |
---|---|
boolean |
add(Node n)
Adds n to this set, returns true if n was not already in this set. |
boolean |
addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other minus the contents of exclude into this set; returns true if this set changed. |
boolean |
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 |
forall(P2SetVisitor v)
Calls v's visit method on all nodes in this set. |
static P2SetFactory |
getFactory()
|
boolean |
isEmpty()
Returns true if this set contains no run-time objects. |
int |
size()
|
Methods inherited from class soot.jimple.spark.sets.PointsToSetInternal |
---|
flushNew, getBitMask, getNewSet, getOldSet, getType, hasNonEmptyIntersection, mergeWith, pointsToSetEquals, pointsToSetHashCode, possibleClassConstants, possibleStringConstants, possibleTypes, setType, toString, unFlushNew |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int OVERFLOW_SIZE
public static final int OVERFLOW_THRESHOLD
Constructor Detail |
---|
public SharedHybridSet(Type type, PAG pag)
Method Detail |
---|
public boolean contains(Node n)
contains
in class PointsToSetInternal
public boolean isEmpty()
PointsToSet
public boolean add(Node n)
PointsToSetInternal
add
in class PointsToSetInternal
public boolean addAll(PointsToSetInternal other, PointsToSetInternal exclude)
PointsToSetInternal
addAll
in class PointsToSetInternal
public boolean forall(P2SetVisitor v)
PointsToSetInternal
forall
in class PointsToSetInternal
public static final P2SetFactory getFactory()
public int size()
size
in class PointsToSetInternal
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |