• Clemens Hammacher's avatar
    [wasm] [interpreter] Fix GC issue · d1b4d4fe
    Clemens Hammacher authored
    Make sure that we call the destructors on all embedded object by
    replacing the WasmInterpreterInternals::Delete method by an actual
    destructor. This way, the compiler automatically calls destructors on
    all embedded objects, in particular the IdentityMap in the CodeMap.
    
    This change also requires to release managed objects *before*
    tearing down the heap, because the wasm interpreter, referenced via
    Managed<>, contains global handles. When those are destroyed, the
    isolate still needs to be intact.
    
    Drive-by: Fix include guard in managed.h.
    
    R=ahaas@chromium.org, ulan@chromium.org, mvstanton@chromium.org
    BUG=v8:5822
    
    Change-Id: I9a067f037e013c84e4d697a1e913b27c683bb529
    Reviewed-on: https://chromium-review.googlesource.com/466187Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#44368}
    d1b4d4fe
wasm-interpreter.cc 85.1 KB