• Dominik Inführ's avatar
    [heap] Remove revisiting logic in the main thread marker · 9f9eacee
    Dominik Inführ authored
    Factory::CopyCode was using ProcessBlackAllocatedObject and
    WriteBarrierForCode(Code) to handle write barriers for that newly
    created code object. But even when used in tandem with each other they
    would miss OLD_TO_NEW references in the code object header.
    
    This CL simplifies Factory::CopyCode by letting
    WriteBarrierForCode(Code) handle all outgoing pointers of that code
    object (not just a subset of RelocInfos) by implementing an
    ObjectVisitor. This removes the need for ProcessBlackAllocatedObject.
    
    Since Factory::CopyCode was the only user of
    ProcessBlackAllocatedObject, we can also remove all the object
    revisiting logic in the main thread marker.
    
    Bug: v8:11708
    Change-Id: I7d9b12eb0a76ba41a38efc147f44556ddc941a96
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3810186Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82212}
    9f9eacee
heap.cc 272 KB