• Dominik Inführ's avatar
    Reland "[heap] String::MakeThin can get away without NotifyObjectLayoutChange" · 255db1d2
    Dominik Inführ authored
    This is a reland of 6e621f84
    
    Original change's description:
    > [heap] String::MakeThin can get away without NotifyObjectLayoutChange
    >
    > String::MakeThin doesn't need to invoke NotifyObjectLayoutChange because
    > ThinString will only introduce tagged values and hence will not
    > overwrite recorded slots with untagged values.
    >
    > Bug: v8:10315
    > Change-Id: Iaff9c06cef763462eb57bf3debc5183ae8db6fa0
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2448792
    > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
    > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#70321}
    
    The reland fixes the failures by first updating actual and only then
    updating the map with a release store. This ensures that concurrent
    markers will observe the pointer when visiting a ThinString and not some
    stale data from before String::MakeThin.
    
    Bug: v8:10315
    Change-Id: I42db7ba9f44a48c920c997bf1258c561f3dd9bcc
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2450066
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70346}
    255db1d2
heap.cc 242 KB