• Ulan Degenbaev's avatar
    [heap] Clear old-to-old recorded slots in the sweeper. · c8c3f3cf
    Ulan Degenbaev authored
    Currently we clear only old-to-new slots in the sweeper.
    For old-to-old slots we maintain the invariant that there are no
    recorded slots in dead objects by explicitly clearing them
    on object size change and array trimming.
    
    The write barrier for concurrent marking will record slots
    even when the host object is white. Thus, it can introduce slots
    in dead objects, which will break evacuation phase if we do not
    clear them in the sweeper.
    
    Besides that, the patch makes handling of slots more uniform and
    allows us to remove clearing of slots on object size changes.
    
    BUG=chromium:694255
    
    Change-Id: I48f60eb25ddc48c6948be4461367e3f7abf74672
    Reviewed-on: https://chromium-review.googlesource.com/592207Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46996}
    c8c3f3cf
mark-compact.h 28.6 KB