[llvm-commits] [llvm] r64017 - /llvm/trunk/include/llvm/ADT/SmallPtrSet.h

Dan Gohman gohman at apple.com
Sat Feb 7 08:12:23 PST 2009


Author: djg
Date: Sat Feb  7 10:12:23 2009
New Revision: 64017

URL: http://llvm.org/viewvc/llvm-project?rev=64017&view=rev
Log:
Change several SmallPtrSetImpl members from public to protected,
to make the encapsulation more clear.

Modified:
    llvm/trunk/include/llvm/ADT/SmallPtrSet.h

Modified: llvm/trunk/include/llvm/ADT/SmallPtrSet.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/SmallPtrSet.h?rev=64017&r1=64016&r2=64017&view=diff

==============================================================================
--- llvm/trunk/include/llvm/ADT/SmallPtrSet.h (original)
+++ llvm/trunk/include/llvm/ADT/SmallPtrSet.h Sat Feb  7 10:12:23 2009
@@ -21,6 +21,8 @@
 
 namespace llvm {
 
+class SmallPtrSetIteratorImpl;
+
 /// SmallPtrSetImpl - This is the common code shared among all the
 /// SmallPtrSet<>'s, which is almost everything.  SmallPtrSet has two modes, one
 /// for small and one for large sets.
@@ -40,6 +42,7 @@
 /// more.  When this happens, the table is doubled in size.
 ///
 class SmallPtrSetImpl {
+  friend class SmallPtrSetIteratorImpl;
 protected:
   /// CurArray - This is the current set of buckets.  If it points to
   /// SmallArray, then the set is in 'small mode'.
@@ -56,7 +59,6 @@
 
   // Helper to copy construct a SmallPtrSet.
   SmallPtrSetImpl(const SmallPtrSetImpl& that);
-public:
   explicit SmallPtrSetImpl(unsigned SmallSize) {
     assert(SmallSize && (SmallSize & (SmallSize-1)) == 0 &&
            "Initial size must be a power of two!");
@@ -69,16 +71,10 @@
   }
   ~SmallPtrSetImpl();
 
+public:
   bool empty() const { return size() == 0; }
   unsigned size() const { return NumElements; }
 
-  static void *getTombstoneMarker() { return reinterpret_cast<void*>(-2); }
-  static void *getEmptyMarker() {
-    // Note that -1 is chosen to make clear() efficiently implementable with
-    // memset and because it's not a valid pointer value.
-    return reinterpret_cast<void*>(-1);
-  }
-
   void clear() {
     // If the capacity of the array is huge, and the # elements used is small,
     // shrink the array.
@@ -92,6 +88,13 @@
   }
 
 protected:
+  static void *getTombstoneMarker() { return reinterpret_cast<void*>(-2); }
+  static void *getEmptyMarker() {
+    // Note that -1 is chosen to make clear() efficiently implementable with
+    // memset and because it's not a valid pointer value.
+    return reinterpret_cast<void*>(-1);
+  }
+
   /// insert_imp - This returns true if the pointer was new to the set, false if
   /// it was already in the set.  This is hidden from the client so that the
   /// derived class can check that the right type of pointer is passed in.





More information about the llvm-commits mailing list