Title: [198229] trunk
Revision
198229
Author
[email protected]
Date
2016-03-15 14:48:15 -0700 (Tue, 15 Mar 2016)

Log Message

REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html
https://bugs.webkit.org/show_bug.cgi?id=155411
<rdar://problem/25134537>

Patch by Joseph Pecoraro <[email protected]> on 2016-03-15
Reviewed by Mark Lam.

Source/_javascript_Core:

* heap/Heap.cpp:
(JSC::Heap::collectImpl):
(JSC::Heap::didFinishCollection):
During collection allocators are stop/reset. The HeapProfiler tasks
were using HeapIterationScope (to satisfy MarkedSpace forEachCell API
contracts) which was doing its own stop/resume of allocators. Doing a
stop/resume in between the normal stop/reset of collection is unexpected.

Move this to didFinishCollection, alongside other heap iterations
like zombies and immortal objects. Putting this after those tasks
also means the heap snapshots will respect the zombies/immortal options
when deciding if the cell is alive or not.

LayoutTests:

* platform/mac/TestExpectations:
Unmark test as flakey.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (198228 => 198229)


--- trunk/LayoutTests/ChangeLog	2016-03-15 20:41:00 UTC (rev 198228)
+++ trunk/LayoutTests/ChangeLog	2016-03-15 21:48:15 UTC (rev 198229)
@@ -1,3 +1,14 @@
+2016-03-15  Joseph Pecoraro  <[email protected]>
+
+        REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html
+        https://bugs.webkit.org/show_bug.cgi?id=155411
+        <rdar://problem/25134537>
+
+        Reviewed by Mark Lam.
+
+        * platform/mac/TestExpectations:
+        Unmark test as flakey.
+
 2016-03-15  Ryan Haddad  <[email protected]>
 
         Fixing expectation for css3/masking/mask-svg-script-none-to-png.html on ios-simulator

Modified: trunk/LayoutTests/platform/mac/TestExpectations (198228 => 198229)


--- trunk/LayoutTests/platform/mac/TestExpectations	2016-03-15 20:41:00 UTC (rev 198228)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2016-03-15 21:48:15 UTC (rev 198229)
@@ -1342,5 +1342,3 @@
 [ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow-padding.html [ ImageOnlyFailure ]
 [ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
 [ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
-
-webkit.org/b/155411 [ Debug ] js/function-apply.html [ Pass Crash ]

Modified: trunk/Source/_javascript_Core/ChangeLog (198228 => 198229)


--- trunk/Source/_javascript_Core/ChangeLog	2016-03-15 20:41:00 UTC (rev 198228)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-03-15 21:48:15 UTC (rev 198229)
@@ -1,3 +1,24 @@
+2016-03-15  Joseph Pecoraro  <[email protected]>
+
+        REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html
+        https://bugs.webkit.org/show_bug.cgi?id=155411
+        <rdar://problem/25134537>
+
+        Reviewed by Mark Lam.
+
+        * heap/Heap.cpp:
+        (JSC::Heap::collectImpl):
+        (JSC::Heap::didFinishCollection):
+        During collection allocators are stop/reset. The HeapProfiler tasks
+        were using HeapIterationScope (to satisfy MarkedSpace forEachCell API
+        contracts) which was doing its own stop/resume of allocators. Doing a
+        stop/resume in between the normal stop/reset of collection is unexpected.
+
+        Move this to didFinishCollection, alongside other heap iterations
+        like zombies and immortal objects. Putting this after those tasks
+        also means the heap snapshots will respect the zombies/immortal options
+        when deciding if the cell is alive or not.
+
 2016-03-15  Saam Barati  <[email protected]>
 
         We should have different JSTypes for JSGlobalLexicalEnvironment and JSLexicalEnvironment and JSModuleEnvironment

Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (198228 => 198229)


--- trunk/Source/_javascript_Core/heap/Heap.cpp	2016-03-15 20:41:00 UTC (rev 198228)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp	2016-03-15 21:48:15 UTC (rev 198229)
@@ -1176,11 +1176,6 @@
     deleteUnmarkedCompiledCode();
     deleteSourceProviderCaches();
 
-    if (HeapProfiler* heapProfiler = m_vm->heapProfiler()) {
-        gatherExtraHeapSnapshotData(*heapProfiler);
-        removeDeadHeapSnapshotNodes(*heapProfiler);
-    }
-
     notifyIncrementalSweeper();
     writeBarrierCurrentlyExecutingCodeBlocks();
 
@@ -1462,6 +1457,11 @@
     if (Options::logGC() == GCLogging::Verbose)
         GCLogging::dumpObjectGraph(this);
 
+    if (HeapProfiler* heapProfiler = m_vm->heapProfiler()) {
+        gatherExtraHeapSnapshotData(*heapProfiler);
+        removeDeadHeapSnapshotNodes(*heapProfiler);
+    }
+
     RELEASE_ASSERT(m_operationInProgress == EdenCollection || m_operationInProgress == FullCollection);
     m_operationInProgress = NoOperation;
     _javascript_CORE_GC_END();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to