• Ulan Degenbaev's avatar
    [heap] Refactor object marking state. · 4af9cfcc
    Ulan Degenbaev authored
    This patch merges ObjectMarking and MarkingState. The new marking state
    encapsulates object marking, live byte tracking, and access atomicity.
    
    The old ObjectMarking calls are now replaced with calls to marking
    state. For example:
    ObjectMarking::WhiteToGrey<kAtomicity>(obj, marking_state(obj)
    becomes
    marking_state()->WhiteToGrey(obj)
    
    This simplifies custom handling of live bytes and allows to chose
    atomicity of markbit accesses depending on collector's state.
    
    This also decouples marking bitmap from the marking code, which will
    allows in future to use different data-structure for mark-bits.
    
    Bug: chromium:694255
    Change-Id: Ifb4bc0144187bac1c08f6bc74a9d5c618fe77740
    Reviewed-on: https://chromium-review.googlesource.com/602132
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47288}
    4af9cfcc
spaces.cc 119 KB