• Thibaud Michaud's avatar
    [wasm] Fix inconsistent stack state · 6b13d258
    Thibaud Michaud authored
    During a stack switch, the stack state is temporarily inconsistent when
    the old stack is marked as "inactive" and the new stack is not yet
    marked as "active".
    
    Ensure that the WasmAllocateSuspender runtime function is not called in
    an inconsistent state. It can trigger a GC, and we need a consistent
    state to iterate the roots.
    
    Wait until the end of the function to mark the current stack as
    "inactive", so that it is still marked as "active" when it is
    potentially visited.
    
    R=clemensb@chromium.org
    
    Bug: v8:13272
    Change-Id: I65fe76c3d222d9fa47d17b66069443ceabba47ad
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3890919Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#83184}
    6b13d258
builtins-x64.cc 198 KB