]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - wtf/HashCountedSet.h
JavaScriptCore-525.tar.gz
[apple/javascriptcore.git] / wtf / HashCountedSet.h
index 202577ad92992bbaa6a2b97975fc4041c57b0e9d..6fc02344eccc6343a3496b07032357e24dfbc2b6 100644 (file)
@@ -1,7 +1,5 @@
-// -*- mode: c++; c-basic-offset: 4 -*-
 /*
- * This file is part of the KDE libraries
- * Copyright (C) 2005 Apple Computer, Inc.
+ * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -25,6 +23,7 @@
 
 #include "Assertions.h"
 #include "HashMap.h"
+#include "Vector.h"
 
 namespace WTF {
 
@@ -170,6 +169,33 @@ namespace WTF {
     {
         m_impl.clear(); 
     }
+    
+    template<typename Value, typename HashFunctions, typename Traits, typename VectorType>
+    inline void copyToVector(const HashCountedSet<Value, HashFunctions, Traits>& collection, VectorType& vector)
+    {
+        typedef typename HashCountedSet<Value, HashFunctions, Traits>::const_iterator iterator;
+        
+        vector.resize(collection.size());
+        
+        iterator it = collection.begin();
+        iterator end = collection.end();
+        for (unsigned i = 0; it != end; ++it, ++i)
+            vector[i] = *it;
+    }
+
+    template<typename Value, typename HashFunctions, typename Traits>
+    inline void copyToVector(const HashCountedSet<Value, HashFunctions, Traits>& collection, Vector<Value>& vector)
+    {
+        typedef typename HashCountedSet<Value, HashFunctions, Traits>::const_iterator iterator;
+        
+        vector.resize(collection.size());
+        
+        iterator it = collection.begin();
+        iterator end = collection.end();
+        for (unsigned i = 0; it != end; ++it, ++i)
+            vector[i] = (*it).first;
+    }
+
 
 } // namespace khtml