Changeset 198229 in webkit


Ignore:
Timestamp:
Mar 15, 2016 2:48:15 PM (8 years ago)
Author:
commit-queue@webkit.org
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 <Joseph Pecoraro> on 2016-03-15
Reviewed by Mark Lam.

Source/JavaScriptCore:

  • 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.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r198227 r198229  
     12016-03-15  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html
     4        https://bugs.webkit.org/show_bug.cgi?id=155411
     5        <rdar://problem/25134537>
     6
     7        Reviewed by Mark Lam.
     8
     9        * platform/mac/TestExpectations:
     10        Unmark test as flakey.
     11
    1122016-03-15  Ryan Haddad  <ryanhaddad@apple.com>
    213
  • trunk/LayoutTests/platform/mac/TestExpectations

    r198222 r198229  
    13431343[ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow-simple.html [ ImageOnlyFailure ]
    13441344[ Yosemite ElCapitan ] fast/scrolling/rtl-scrollbars-overflow.html [ ImageOnlyFailure ]
    1345 
    1346 webkit.org/b/155411 [ Debug ] js/function-apply.html [ Pass Crash ]
  • trunk/Source/JavaScriptCore/ChangeLog

    r198228 r198229  
     12016-03-15  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html
     4        https://bugs.webkit.org/show_bug.cgi?id=155411
     5        <rdar://problem/25134537>
     6
     7        Reviewed by Mark Lam.
     8
     9        * heap/Heap.cpp:
     10        (JSC::Heap::collectImpl):
     11        (JSC::Heap::didFinishCollection):
     12        During collection allocators are stop/reset. The HeapProfiler tasks
     13        were using HeapIterationScope (to satisfy MarkedSpace forEachCell API
     14        contracts) which was doing its own stop/resume of allocators. Doing a
     15        stop/resume in between the normal stop/reset of collection is unexpected.
     16
     17        Move this to didFinishCollection, alongside other heap iterations
     18        like zombies and immortal objects. Putting this after those tasks
     19        also means the heap snapshots will respect the zombies/immortal options
     20        when deciding if the cell is alive or not.
     21
    1222016-03-15  Saam Barati  <sbarati@apple.com>
    223
  • trunk/Source/JavaScriptCore/heap/Heap.cpp

    r198212 r198229  
    11771177    deleteSourceProviderCaches();
    11781178
    1179     if (HeapProfiler* heapProfiler = m_vm->heapProfiler()) {
    1180         gatherExtraHeapSnapshotData(*heapProfiler);
    1181         removeDeadHeapSnapshotNodes(*heapProfiler);
    1182     }
    1183 
    11841179    notifyIncrementalSweeper();
    11851180    writeBarrierCurrentlyExecutingCodeBlocks();
     
    14631458        GCLogging::dumpObjectGraph(this);
    14641459
     1460    if (HeapProfiler* heapProfiler = m_vm->heapProfiler()) {
     1461        gatherExtraHeapSnapshotData(*heapProfiler);
     1462        removeDeadHeapSnapshotNodes(*heapProfiler);
     1463    }
     1464
    14651465    RELEASE_ASSERT(m_operationInProgress == EdenCollection || m_operationInProgress == FullCollection);
    14661466    m_operationInProgress = NoOperation;
Note: See TracChangeset for help on using the changeset viewer.