- 30 May, 2018 1 commit
-
-
Ben L. Titzer authored
Extends the functionality of Managed<T> to track an estimated size for the external memory associated with an instance of Managed<T> in order to allow for proper accounting in the garbage collector. R=mstarzinger@chromium.org CC=ulan@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8c49c6245eaf267c9264ebb93b43d5dfbf4671fd Reviewed-on: https://chromium-review.googlesource.com/1076332 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#53433}
-
- 26 Apr, 2018 1 commit
-
-
Ben L. Titzer authored
This CL simplifies and extends the implementation of Managed<T> and now uses a std::shared_ptr<T> underneath in order to offer cross-isolate management of C++ allocated memory. R=mstarzinger@chromium.org CC=ulan@chromium.org Bug: v8:7424 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Id43a26f565677e8c9cdfd73810568d4f2b1871fe Reviewed-on: https://chromium-review.googlesource.com/1028190Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52820}
-
- 06 Apr, 2018 1 commit
-
-
Clemens Hammacher authored
Test that Managed objects get collected if they are not referenced any more. R=ulan@chromium.org Bug: v8:7628 Change-Id: I4a594ebe835071d76d7a6e2ddee6a6092b3e4a31 Reviewed-on: https://chromium-review.googlesource.com/999482Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52438}
-
- 04 Sep, 2017 1 commit
-
-
Clemens Hammacher authored
Rename Managed::New to Managed::From (since it takes ownership of an existing object), and re-introduce Managed::Allocate, which allocates a new object and stores it in a Managed. R=titzer@chromium.org Change-Id: I20b0750697fbe7d56d3816b19919c31e389278b3 Reviewed-on: https://chromium-review.googlesource.com/645806Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#47794}
-
- 14 Aug, 2017 1 commit
-
-
Mostyn Bramley-Moore authored
* Avoid "using namespace" statements, which trigger clang's -Wheader-hygiene warnings in jumbo builds. * Undefine created macros at the end of source files. BUG=chromium:746958 Change-Id: I5d25432c314437f607b0e1be22765a6764267ba6 Reviewed-on: https://chromium-review.googlesource.com/610962Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Cr-Commit-Position: refs/heads/master@{#47347}
-
- 20 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
For each Managed<T> (which is a Foreign), we create a weak global handle with a finalizer which deletes the referenced C++ object once the Foreign is dead. Before calling this finalizer, the garbage collector needs to mark the referenced object black (i.e. live), because the finalizer might resurrect it. Since this is never done for managed objects, we can use the more lightweight phantom handle semantics, which allows the referenced object to be garbage collected right away. However, we can't access the global handle via the WeakCallbackInfo, because the global handle will already be garbage collected. So we need to store it explicitly. This is solved by storing the global handle together with the finalizer. In order to implement this, ownership of the ManagedObjectFinalizer is moved from the isolate to the managed object. R=ulan@chromium.org, mtrofin@chromium.org BUG=v8:6505, chromium:734345 Change-Id: I94a245df601f70e19355d82439d30099e159231b Reviewed-on: https://chromium-review.googlesource.com/539578 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46036}
-
- 21 Feb, 2017 1 commit
-
-
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}
-