Package soot.jimple.spark.sets
Class HybridPointsToSet
- java.lang.Object
-
- soot.jimple.spark.sets.PointsToSetInternal
-
- soot.jimple.spark.sets.HybridPointsToSet
-
- All Implemented Interfaces:
EqualsSupportingPointsToSet,PointsToSet
public class HybridPointsToSet extends PointsToSetInternal
Hybrid implementation of points-to set, which uses an explicit array for small sets, and a bit vector for large sets.- Author:
- Ondrej Lhotak
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class soot.jimple.spark.sets.PointsToSetInternal
PointsToSetInternal.P2SetVisitorDefaultTrue, PointsToSetInternal.P2SetVisitorInt
-
-
Constructor Summary
Constructors Constructor Description HybridPointsToSet(Type type, PAG pag)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(Node n)Adds n to this set, returns true if n was not already in this set.booleanaddAll(PointsToSetInternal other, PointsToSetInternal exclude)Adds contents of other into this set, returns true if this set changed.booleancontains(Node n)Returns true iff the set contains n.protected voidconvertToBits()protected booleanfastAdd(Node n)booleanforall(P2SetVisitor v)Calls v's visit method on all nodes in this set.static P2SetFactory<HybridPointsToSet>getFactory()static HybridPointsToSetintersection(HybridPointsToSet set1, HybridPointsToSet set2, PAG pag)booleanisEmpty()Returns true if this set contains no run-time objects.static voidsetPointsToSetFactory(P2SetFactory<HybridPointsToSet> factory)-
Methods inherited from class soot.jimple.spark.sets.PointsToSetInternal
flushNew, getBitMask, getNewSet, getOldSet, getType, hasNonEmptyIntersection, mergeWith, pointsToSetEquals, pointsToSetHashCode, possibleClassConstants, possibleStringConstants, possibleTypes, setType, size, toString, unFlushNew
-
-
-
-
Method Detail
-
setPointsToSetFactory
public static void setPointsToSetFactory(P2SetFactory<HybridPointsToSet> factory)
-
isEmpty
public final boolean isEmpty()
Returns true if this set contains no run-time objects.
-
addAll
public boolean addAll(PointsToSetInternal other, PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.- Overrides:
addAllin classPointsToSetInternal
-
forall
public boolean forall(P2SetVisitor v)
Calls v's visit method on all nodes in this set.- Specified by:
forallin classPointsToSetInternal
-
add
public boolean add(Node n)
Adds n to this set, returns true if n was not already in this set.- Specified by:
addin classPointsToSetInternal
-
contains
public boolean contains(Node n)
Returns true iff the set contains n.- Specified by:
containsin classPointsToSetInternal
-
getFactory
public static P2SetFactory<HybridPointsToSet> getFactory()
-
fastAdd
protected boolean fastAdd(Node n)
-
convertToBits
protected void convertToBits()
-
intersection
public static HybridPointsToSet intersection(HybridPointsToSet set1, HybridPointsToSet set2, PAG pag)
-
-