add a traits class for SmallPtrSet that allows us to stick things that are
[oota-llvm.git] / include / llvm / ADT / PriorityQueue.h
index 1cff0f2a0ceeaf0ca062a8e6209e18cb944c72bd..a8809dc0b267629e77e66041efc0f24e85509528 100644 (file)
@@ -20,7 +20,7 @@ namespace llvm {
 
 /// PriorityQueue - This class behaves like std::priority_queue and
 /// provides a few additional convenience functions.
-/// 
+///
 template<class T,
          class Sequence = std::vector<T>,
          class Compare = std::less<typename Sequence::value_type> >
@@ -51,7 +51,7 @@ public:
     // Logarithmic-time heap bubble-up.
     while (i != 0) {
       typename Sequence::size_type parent = (i - 1) / 2;
-      std::swap(this->c[i], this->c[parent]);
+      this->c[i] = this->c[parent];
       i = parent;
     }
 
@@ -70,6 +70,12 @@ public:
   void reheapify() {
     std::make_heap(this->c.begin(), this->c.end(), this->comp);
   }
+
+  /// clear - Erase all elements from the queue.
+  ///
+  void clear() {
+    this->c.clear();
+  }
 };
 
 } // End llvm namespace