Title: [269089] branches/safari-610-branch/Source/WTF
Revision
269089
Author
[email protected]
Date
2020-10-27 18:42:57 -0700 (Tue, 27 Oct 2020)

Log Message

Cherry-pick r269017. rdar://problem/70733371

    Assert that WTF::HashTable does not visit the same bucket twice
    https://bugs.webkit.org/show_bug.cgi?id=217691
    <rdar://problem/69887843>

    Reviewed by Saam Barati.

    * wtf/HashTable.h:
    (WTF::KeyTraits>::inlineLookup):
    (WTF::KeyTraits>::lookupForWriting):
    (WTF::KeyTraits>::fullLookupForWriting):
    (WTF::KeyTraits>::addUniqueForInitialization):
    (WTF::KeyTraits>::add):

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

Modified Paths

Diff

Modified: branches/safari-610-branch/Source/WTF/ChangeLog (269088 => 269089)


--- branches/safari-610-branch/Source/WTF/ChangeLog	2020-10-28 01:42:54 UTC (rev 269088)
+++ branches/safari-610-branch/Source/WTF/ChangeLog	2020-10-28 01:42:57 UTC (rev 269089)
@@ -1,5 +1,39 @@
 2020-10-27  Russell Epstein  <[email protected]>
 
+        Cherry-pick r269017. rdar://problem/70733371
+
+    Assert that WTF::HashTable does not visit the same bucket twice
+    https://bugs.webkit.org/show_bug.cgi?id=217691
+    <rdar://problem/69887843>
+    
+    Reviewed by Saam Barati.
+    
+    * wtf/HashTable.h:
+    (WTF::KeyTraits>::inlineLookup):
+    (WTF::KeyTraits>::lookupForWriting):
+    (WTF::KeyTraits>::fullLookupForWriting):
+    (WTF::KeyTraits>::addUniqueForInitialization):
+    (WTF::KeyTraits>::add):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-10-13  Tadeu Zagallo  <[email protected]>
+
+            Assert that WTF::HashTable does not visit the same bucket twice
+            https://bugs.webkit.org/show_bug.cgi?id=217691
+            <rdar://problem/69887843>
+
+            Reviewed by Saam Barati.
+
+            * wtf/HashTable.h:
+            (WTF::KeyTraits>::inlineLookup):
+            (WTF::KeyTraits>::lookupForWriting):
+            (WTF::KeyTraits>::fullLookupForWriting):
+            (WTF::KeyTraits>::addUniqueForInitialization):
+            (WTF::KeyTraits>::add):
+
+2020-10-27  Russell Epstein  <[email protected]>
+
         Cherry-pick r268135. rdar://problem/70733407
 
     Add maximum depth check to RedBlackTree

Modified: branches/safari-610-branch/Source/WTF/wtf/HashTable.h (269088 => 269089)


--- branches/safari-610-branch/Source/WTF/wtf/HashTable.h	2020-10-28 01:42:54 UTC (rev 269088)
+++ branches/safari-610-branch/Source/WTF/wtf/HashTable.h	2020-10-28 01:42:57 UTC (rev 269089)
@@ -675,6 +675,7 @@
         unsigned sizeMask = tableSizeMask();
         unsigned h = HashTranslator::hash(key);
         unsigned i = h & sizeMask;
+        unsigned initialIndex = i;
 
 #if DUMP_HASHTABLE_STATS
         ++HashTableStats::numAccesses;
@@ -714,6 +715,7 @@
             if (k == 0)
                 k = 1 | doubleHash(h);
             i = (i + k) & sizeMask;
+            RELEASE_ASSERT(i != initialIndex);
         }
     }
 
@@ -729,6 +731,7 @@
         unsigned sizeMask = tableSizeMask();
         unsigned h = HashTranslator::hash(key);
         unsigned i = h & sizeMask;
+        unsigned initialIndex = i;
 
 #if DUMP_HASHTABLE_STATS
         ++HashTableStats::numAccesses;
@@ -775,6 +778,7 @@
             if (k == 0)
                 k = 1 | doubleHash(h);
             i = (i + k) & sizeMask;
+            RELEASE_ASSERT(i != initialIndex);
         }
     }
 
@@ -790,6 +794,7 @@
         unsigned sizeMask = tableSizeMask();
         unsigned h = HashTranslator::hash(key);
         unsigned i = h & sizeMask;
+        unsigned initialIndex = i;
 
 #if DUMP_HASHTABLE_STATS
         ++HashTableStats::numAccesses;
@@ -836,6 +841,7 @@
             if (k == 0)
                 k = 1 | doubleHash(h);
             i = (i + k) & sizeMask;
+            RELEASE_ASSERT(i != initialIndex);
         }
     }
 
@@ -856,6 +862,7 @@
         unsigned sizeMask = tableSizeMask();
         unsigned h = HashTranslator::hash(key);
         unsigned i = h & sizeMask;
+        unsigned initialIndex = i;
 
 #if DUMP_HASHTABLE_STATS
         ++HashTableStats::numAccesses;
@@ -885,6 +892,7 @@
             if (k == 0)
                 k = 1 | doubleHash(h);
             i = (i + k) & sizeMask;
+            RELEASE_ASSERT(i != initialIndex);
         }
 
         HashTranslator::translate(*entry, std::forward<T>(key), std::forward<Extra>(extra));
@@ -937,6 +945,7 @@
         unsigned sizeMask = tableSizeMask();
         unsigned h = HashTranslator::hash(key);
         unsigned i = h & sizeMask;
+        unsigned initialIndex = i;
 
 #if DUMP_HASHTABLE_STATS
         ++HashTableStats::numAccesses;
@@ -983,6 +992,7 @@
             if (k == 0)
                 k = 1 | doubleHash(h);
             i = (i + k) & sizeMask;
+            RELEASE_ASSERT(i != initialIndex);
         }
 
         if (deletedEntry) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to