• ulan's avatar
    [heap] Ensure finalization of incremental marking even if all allocations · fdc0aa0c
    ulan authored
    come from the runtime.
    
    This patch fixes an issue of heap growing to max capacity when incremental
    marking is finished but cannot finalize due to GC stack guard not triggering.
    
    It can happen if all allocations come from the runtime, for example,
    from JSON parser or compiler.
    
    Now before expanding the heap we check if we are above the allocation limit
    and the incremental marking needs to be finalized. If so we do not expand
    the heap and force GC, which will finalize the incremental marking.
    The check is performed for paged spaces and large-object space.
    
    BUG=chromium:670675
    
    Review-Url: https://codereview.chromium.org/2552613004
    Cr-Commit-Position: refs/heads/master@{#41524}
    fdc0aa0c
heap.cc 224 KB