Unreviewed, rolling out r203304.
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 15 Jul 2016 22:38:30 +0000 (22:38 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 15 Jul 2016 22:38:30 +0000 (22:38 +0000)
This is wrong because of Node* entries in the internal HashMap

Reverted changeset:

"Add move constructor / assignment operator to ListHashSet"
https://bugs.webkit.org/show_bug.cgi?id=159837
http://trac.webkit.org/changeset/203304

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@203306 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/ListHashSet.h

index dfb4d45..47fced0 100644 (file)
@@ -1,5 +1,17 @@
 2016-07-15  Chris Dumez  <cdumez@apple.com>
 
+        Unreviewed, rolling out r203304.
+
+        This is wrong because of Node* entries in the internal HashMap
+
+        Reverted changeset:
+
+        "Add move constructor / assignment operator to ListHashSet"
+        https://bugs.webkit.org/show_bug.cgi?id=159837
+        http://trac.webkit.org/changeset/203304
+
+2016-07-15  Chris Dumez  <cdumez@apple.com>
+
         Add move constructor / assignment operator to ListHashSet
         https://bugs.webkit.org/show_bug.cgi?id=159837
 
index c7d7bbd..ccb30e4 100644 (file)
@@ -19,7 +19,8 @@
  *
  */
 
-#pragma once
+#ifndef WTF_ListHashSet_h
+#define WTF_ListHashSet_h
 
 #include <wtf/HashSet.h>
 
@@ -68,11 +69,9 @@ public:
 
     typedef HashTableAddResult<iterator> AddResult;
 
-    ListHashSet() = default;
+    ListHashSet();
     ListHashSet(const ListHashSet&);
-    ListHashSet(ListHashSet&&) = default;
     ListHashSet& operator=(const ListHashSet&);
-    ListHashSet& operator=(ListHashSet&&) = default;
     ~ListHashSet();
 
     void swap(ListHashSet&);
@@ -150,8 +149,8 @@ private:
     const_iterator makeConstIterator(Node*) const;
 
     HashTable<Node*, Node*, IdentityExtractor, NodeHash, NodeTraits, NodeTraits> m_impl;
-    Node* m_head { nullptr };
-    Node* m_tail { nullptr };
+    Node* m_head;
+    Node* m_tail;
 };
 
 template<typename ValueArg> struct ListHashSetNode {
@@ -160,12 +159,14 @@ public:
     template<typename T>
     ListHashSetNode(T&& value)
         : m_value(std::forward<T>(value))
+        , m_prev(0)
+        , m_next(0)
     {
     }
 
     ValueArg m_value;
-    ListHashSetNode* m_prev { nullptr };
-    ListHashSetNode* m_next { nullptr };
+    ListHashSetNode* m_prev;
+    ListHashSetNode* m_next;
 };
 
 template<typename HashArg> struct ListHashSetNodeHashFunctions {
@@ -259,7 +260,7 @@ public:
 
     const_iterator& operator++()
     {
-        ASSERT(m_position);
+        ASSERT(m_position != 0);
         m_position = m_position->m_next;
         return *this;
     }
@@ -306,7 +307,16 @@ struct ListHashSetTranslator {
 };
 
 template<typename T, typename U>
+inline ListHashSet<T, U>::ListHashSet()
+    : m_head(0)
+    , m_tail(0)
+{
+}
+
+template<typename T, typename U>
 inline ListHashSet<T, U>::ListHashSet(const ListHashSet& other)
+    : m_head(0)
+    , m_tail(0)
 {
     for (auto it = other.begin(), end = other.end(); it != end; ++it)
         add(*it);
@@ -592,8 +602,8 @@ inline void ListHashSet<T, U>::clear()
 {
     deleteAllNodes();
     m_impl.clear(); 
-    m_head = nullptr;
-    m_tail = nullptr;
+    m_head = 0;
+    m_tail = 0;
 }
 
 template<typename T, typename U>
@@ -627,7 +637,7 @@ template<typename T, typename U>
 void ListHashSet<T, U>::appendNode(Node* node)
 {
     node->m_prev = m_tail;
-    node->m_next = nullptr;
+    node->m_next = 0;
 
     if (m_tail) {
         ASSERT(m_head);
@@ -643,7 +653,7 @@ void ListHashSet<T, U>::appendNode(Node* node)
 template<typename T, typename U>
 void ListHashSet<T, U>::prependNode(Node* node)
 {
-    node->m_prev = nullptr;
+    node->m_prev = 0;
     node->m_next = m_head;
 
     if (m_head)
@@ -676,7 +686,7 @@ void ListHashSet<T, U>::deleteAllNodes()
     if (!m_head)
         return;
 
-    for (Node* node = m_head, *next = m_head->m_next; node; node = next, next = node ? node->m_next : nullptr)
+    for (Node* node = m_head, *next = m_head->m_next; node; node = next, next = node ? node->m_next : 0)
         delete node;
 }
 
@@ -695,3 +705,5 @@ inline auto ListHashSet<T, U>::makeConstIterator(Node* position) const -> const_
 } // namespace WTF
 
 using WTF::ListHashSet;
+
+#endif /* WTF_ListHashSet_h */