1. 04 Apr, 2017 1 commit
    • 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
  2. 21 Feb, 2017 1 commit
    • mtrofin's avatar
      [wasm] Managed<T> ensures T's lifetime does not leak past Isolate's · caa1d4b2
      mtrofin authored
      Native resources allocated by v8, as internal implementation detail,
      and held by a Foreign object, must be released when the Isolate is
      torn down. Example: wasm::WasmModule allocated by wasm compile, and
      held throughout the lifetime of the WebAssembly.Module object.
      
      This change:
      - Extends Managed<CppType> with a mechanism for doing just that
      - Separates the role of Managed<CppType> to be strictly an owner of
      the lifetime of the native resource. For cases where that's not
      desirable, we can polymorphically use Foregin.
      - moves managed.h out of wasm, since it's not wasm-specific.
      
      BUG=680065
      
      Review-Url: https://codereview.chromium.org/2676513008
      Cr-Commit-Position: refs/heads/master@{#43350}
      caa1d4b2