• Michael Lippautz's avatar
    [api, heap] Implement TracedReference · 36774683
    Michael Lippautz authored
    TracedGlobalTrait was unable to override v8::TracedGlobal<v8::Object> for
    avoiding the destructor because it is needed on the API surface itself and C++
    ODR which prohibits specialization after template instantiation.
    
    Avoid this problem by providing a separate type TracedReference
    that, similar to TracedGlobal, is purely traced but avoids the destructor
    completely. This only works for embedders that have their memory management
    tied to V8 as it is prone to accessing already reclaimed objects otherwise.
    
    Bug: chromium:995684
    Change-Id: Iab4332ed417b26c58638a8f9389174cc355a305b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1840972
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#64150}
    36774683
embedder-tracing.h 5.17 KB