soot.jimple.spark.sets
Class HybridPointsToSet

java.lang.Object
  extended by soot.jimple.spark.sets.PointsToSetInternal
      extended by soot.jimple.spark.sets.HybridPointsToSet
All Implemented Interfaces:
EqualsSupportingPointsToSet, PointsToSet

public final 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
 
Field Summary
 
Fields inherited from class soot.jimple.spark.sets.PointsToSetInternal
type
 
Constructor Summary
HybridPointsToSet(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 into this set, returns true if this set changed.
 boolean contains(Node n)
          Returns true iff the set contains n.
protected  void convertToBits()
           
protected  boolean fastAdd(Node n)
           
 boolean forall(P2SetVisitor v)
          Calls v's visit method on all nodes in this set.
static P2SetFactory getFactory()
           
static HybridPointsToSet intersection(HybridPointsToSet set1, HybridPointsToSet set2, PAG pag)
           
 boolean isEmpty()
          Returns true if this set contains no run-time objects.
 
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HybridPointsToSet

public HybridPointsToSet(Type type,
                         PAG pag)
Method Detail

isEmpty

public final boolean isEmpty()
Returns true if this set contains no run-time objects.


addAll

public final boolean addAll(PointsToSetInternal other,
                            PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set changed.

Overrides:
addAll in class PointsToSetInternal

forall

public final boolean forall(P2SetVisitor v)
Calls v's visit method on all nodes in this set.

Specified by:
forall in class PointsToSetInternal

add

public final boolean add(Node n)
Adds n to this set, returns true if n was not already in this set.

Specified by:
add in class PointsToSetInternal

contains

public final boolean contains(Node n)
Returns true iff the set contains n.

Specified by:
contains in class PointsToSetInternal

getFactory

public static final P2SetFactory getFactory()

fastAdd

protected final boolean fastAdd(Node n)

convertToBits

protected final void convertToBits()

intersection

public static HybridPointsToSet intersection(HybridPointsToSet set1,
                                             HybridPointsToSet set2,
                                             PAG pag)