Title: [265773] trunk
Revision
265773
Author
[email protected]
Date
2020-08-17 14:35:36 -0700 (Mon, 17 Aug 2020)

Log Message

[WTF] HashTable<Ref<K>, V>::HashTable(const HashTable& other) can't compile
https://bugs.webkit.org/show_bug.cgi?id=215550

Reviewed by Darin Adler.

Source/WTF:

Even though the copy constructor takes a const HashTable
reference, RefHashTraits::assignToEmpty takes non-const Ref<P>. It
seems that RefHashTraits::assignToEmpty and
Ref::assignToHashTableEmptyValue are unnecessary. Just remove them.

* wtf/HashTraits.h:
(WTF::RefHashTraits::assignToEmpty): Deleted.
* wtf/Ref.h:
(WTF::Ref::assignToHashTableEmptyValue): Deleted.

Tools:

* TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::TEST):

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (265772 => 265773)


--- trunk/Source/WTF/ChangeLog	2020-08-17 21:16:43 UTC (rev 265772)
+++ trunk/Source/WTF/ChangeLog	2020-08-17 21:35:36 UTC (rev 265773)
@@ -1,3 +1,20 @@
+2020-08-17  Fujii Hironori  <[email protected]>
+
+        [WTF] HashTable<Ref<K>, V>::HashTable(const HashTable& other) can't compile
+        https://bugs.webkit.org/show_bug.cgi?id=215550
+
+        Reviewed by Darin Adler.
+
+        Even though the copy constructor takes a const HashTable
+        reference, RefHashTraits::assignToEmpty takes non-const Ref<P>. It
+        seems that RefHashTraits::assignToEmpty and
+        Ref::assignToHashTableEmptyValue are unnecessary. Just remove them.
+
+        * wtf/HashTraits.h:
+        (WTF::RefHashTraits::assignToEmpty): Deleted.
+        * wtf/Ref.h:
+        (WTF::Ref::assignToHashTableEmptyValue): Deleted.
+
 2020-08-17  Youenn Fablet  <[email protected]>
 
         Bump HAVE_NSURLSESSION_WEBSOCKET requirement to BigSur for MacOS

Modified: trunk/Source/WTF/wtf/HashTraits.h (265772 => 265773)


--- trunk/Source/WTF/wtf/HashTraits.h	2020-08-17 21:16:43 UTC (rev 265772)
+++ trunk/Source/WTF/wtf/HashTraits.h	2020-08-17 21:35:36 UTC (rev 265773)
@@ -208,8 +208,6 @@
     static constexpr bool hasIsEmptyValueFunction = true;
     static bool isEmptyValue(const Ref<P>& value) { return value.isHashTableEmptyValue(); }
 
-    static void assignToEmpty(Ref<P>& emptyValue, Ref<P>&& newValue) { ASSERT(isEmptyValue(emptyValue)); emptyValue.assignToHashTableEmptyValue(WTFMove(newValue)); }
-
     typedef P* PeekType;
     static PeekType peek(const Ref<P>& value) { return const_cast<PeekType>(value.ptrAllowingHashTableEmptyValue()); }
     static PeekType peek(P* value) { return value; }

Modified: trunk/Source/WTF/wtf/Ref.h (265772 => 265773)


--- trunk/Source/WTF/wtf/Ref.h	2020-08-17 21:16:43 UTC (rev 265772)
+++ trunk/Source/WTF/wtf/Ref.h	2020-08-17 21:35:36 UTC (rev 265773)
@@ -112,17 +112,6 @@
     const T* ptrAllowingHashTableEmptyValue() const { ASSERT(m_ptr || isHashTableEmptyValue()); return PtrTraits::unwrap(m_ptr); }
     T* ptrAllowingHashTableEmptyValue() { ASSERT(m_ptr || isHashTableEmptyValue()); return PtrTraits::unwrap(m_ptr); }
 
-    void assignToHashTableEmptyValue(Ref&& reference)
-    {
-#if ASAN_ENABLED
-        if (__asan_address_is_poisoned(this))
-            __asan_unpoison_memory_region(this, sizeof(*this));
-#endif
-        ASSERT(m_ptr == hashTableEmptyValue());
-        m_ptr = &reference.leakRef();
-        ASSERT(m_ptr);
-    }
-
     T* operator->() const { ASSERT(m_ptr); return PtrTraits::unwrap(m_ptr); }
     T* ptr() const RETURNS_NONNULL { ASSERT(m_ptr); return PtrTraits::unwrap(m_ptr); }
     T& get() const { ASSERT(m_ptr); return *PtrTraits::unwrap(m_ptr); }

Modified: trunk/Tools/ChangeLog (265772 => 265773)


--- trunk/Tools/ChangeLog	2020-08-17 21:16:43 UTC (rev 265772)
+++ trunk/Tools/ChangeLog	2020-08-17 21:35:36 UTC (rev 265773)
@@ -1,3 +1,13 @@
+2020-08-17  Fujii Hironori  <[email protected]>
+
+        [WTF] HashTable<Ref<K>, V>::HashTable(const HashTable& other) can't compile
+        https://bugs.webkit.org/show_bug.cgi?id=215550
+
+        Reviewed by Darin Adler.
+
+        * TestWebKitAPI/Tests/WTF/HashSet.cpp:
+        (TestWebKitAPI::TEST):
+
 2020-08-17  Jonathan Bedard  <[email protected]>
 
         [resultsdbpy]: Depend on webkitcorepy

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp (265772 => 265773)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp	2020-08-17 21:16:43 UTC (rev 265772)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp	2020-08-17 21:35:36 UTC (rev 265773)
@@ -454,6 +454,16 @@
         }
     }
     ASSERT_STREQ("deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) deref(a) ", takeLogStr().c_str());
+
+    {
+        RefLogger a("a");
+
+        HashSet<Ref<RefLogger>> set;
+        Ref<RefLogger> ref(a);
+        set.add(WTFMove(ref));
+        HashSet<Ref<RefLogger>> set2(set);
+    }
+    ASSERT_STREQ("ref(a) ref(a) deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashSet, DeletedAddressOfOperator)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to