Title: [255287] branches/safari-610.1.1-branch/Source/bmalloc
Revision
255287
Author
[email protected]
Date
2020-01-28 13:49:13 -0800 (Tue, 28 Jan 2020)

Log Message

Cherry-pick r254764. rdar://problem/58688794

    [bmalloc] Fix IsoHeapImpl's assertion introduced in r254708
    https://bugs.webkit.org/show_bug.cgi?id=206440
    <rdar://problem/58688794>

    Reviewed by Mark Lam.

    The assertion introduced in r254708 was wrong.
    Fixing it to check the invariant we actually want to ensure.
    This fixes TestWTF crash in Debug build.

    * bmalloc/IsoHeapImplInlines.h:
    (bmalloc::IsoHeapImpl<Config>::takeFirstEligible):

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

Modified Paths

Diff

Modified: branches/safari-610.1.1-branch/Source/bmalloc/ChangeLog (255286 => 255287)


--- branches/safari-610.1.1-branch/Source/bmalloc/ChangeLog	2020-01-28 21:49:11 UTC (rev 255286)
+++ branches/safari-610.1.1-branch/Source/bmalloc/ChangeLog	2020-01-28 21:49:13 UTC (rev 255287)
@@ -1,5 +1,39 @@
 2020-01-28  Russell Epstein  <[email protected]>
 
+        Cherry-pick r254764. rdar://problem/58688794
+
+    [bmalloc] Fix IsoHeapImpl's assertion introduced in r254708
+    https://bugs.webkit.org/show_bug.cgi?id=206440
+    <rdar://problem/58688794>
+    
+    Reviewed by Mark Lam.
+    
+    The assertion introduced in r254708 was wrong.
+    Fixing it to check the invariant we actually want to ensure.
+    This fixes TestWTF crash in Debug build.
+    
+    * bmalloc/IsoHeapImplInlines.h:
+    (bmalloc::IsoHeapImpl<Config>::takeFirstEligible):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-01-17  Yusuke Suzuki  <[email protected]>
+
+            [bmalloc] Fix IsoHeapImpl's assertion introduced in r254708
+            https://bugs.webkit.org/show_bug.cgi?id=206440
+            <rdar://problem/58688794>
+
+            Reviewed by Mark Lam.
+
+            The assertion introduced in r254708 was wrong.
+            Fixing it to check the invariant we actually want to ensure.
+            This fixes TestWTF crash in Debug build.
+
+            * bmalloc/IsoHeapImplInlines.h:
+            (bmalloc::IsoHeapImpl<Config>::takeFirstEligible):
+
+2020-01-28  Russell Epstein  <[email protected]>
+
         Cherry-pick r254708. rdar://problem/58657110
 
     [bmalloc] IsoHeap's initial setup should be small

Modified: branches/safari-610.1.1-branch/Source/bmalloc/bmalloc/IsoHeapImplInlines.h (255286 => 255287)


--- branches/safari-610.1.1-branch/Source/bmalloc/bmalloc/IsoHeapImplInlines.h	2020-01-28 21:49:11 UTC (rev 255286)
+++ branches/safari-610.1.1-branch/Source/bmalloc/bmalloc/IsoHeapImplInlines.h	2020-01-28 21:49:13 UTC (rev 255287)
@@ -60,9 +60,13 @@
             RELEASE_BASSERT(!m_headDirectory.get());
             RELEASE_BASSERT(!m_tailDirectory.get());
         } else {
+            auto* originalCursor = cursor;
+            BUNUSED(originalCursor);
             for (; cursor; cursor = cursor->next) {
                 EligibilityResult<Config> result = cursor->payload.takeFirstEligible(locker);
-                ASSERT(m_firstEligibleOrDecommitedDirectory.get() == cursor);
+                // While iterating, m_firstEligibleOrDecommitedDirectory is never changed. We are holding a lock,
+                // and IsoDirectory::takeFirstEligible must not populate a new eligibile / decommitted pages.
+                BASSERT(m_firstEligibleOrDecommitedDirectory.get() == originalCursor);
                 if (result.kind != EligibilityKind::Full) {
                     m_directoryHighWatermark = std::max(m_directoryHighWatermark, cursor->index());
                     m_firstEligibleOrDecommitedDirectory = cursor;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to