cppgc: Allow allocations in prefinalziers
Prefinalizers have long been forbidden to allocate. This restriction often proved problematic and has caused several issues in the past. This CL adds support for allowing allocations in prefinalizers. At the start of prefinalizer invocations we clear the linear allocation buffers, such that all allocations go through the slow path for allocation. The slow path checks whether prefinalizers are currently being invoked and marks the newly allocated object if they are (i.e. black allocation during prefinalizers). The new behavior is disabled by default and can be enabled by setting the cppgc_allow_allocations_in_prefinalizers gn arg to true. Bug: chromium:1056170 Change-Id: Ib86e780dcff88fa7b0f762ac2ab83c42393d33af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097877 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#76606}
Showing
Please
register
or
sign in
to comment