diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-10-22 22:03:53 +0200 |
---|---|---|
committer | Michaƫl Zasso <targos@protonmail.com> | 2019-11-08 15:53:36 +0100 |
commit | 2bdeb88c27b4d8de3a8f6b7a438cf0bcb88fa927 (patch) | |
tree | c86c4faa4410216460c25053ab22061ee3f9897f /src/api/environment.cc | |
parent | 2707efd27b5ce5f9b9a6873438769394ef1c6431 (diff) | |
download | android-node-v8-2bdeb88c27b4d8de3a8f6b7a438cf0bcb88fa927.tar.gz android-node-v8-2bdeb88c27b4d8de3a8f6b7a438cf0bcb88fa927.tar.bz2 android-node-v8-2bdeb88c27b4d8de3a8f6b7a438cf0bcb88fa927.zip |
src: remove custom tracking for SharedArrayBuffers
Remove custom tracking for `SharedArrayBuffer`s and their allocators
and instead let V8 do the tracking of both. This is required starting
in V8 7.9, because lifetime management for `ArrayBuffer::Allocator`s
differs from what was performed previously (i.e. it is no longer
easily possible for one Isolate to release an `ArrayBuffer` and another
to accept it into its own allocator), and the alternative would
have been adapting the `SharedArrayBuffer` tracking logic to also
apply to regular `ArrayBuffer` instances.
Refs: https://github.com/nodejs/node/pull/30044
PR-URL: https://github.com/nodejs/node/pull/30020
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'src/api/environment.cc')
-rw-r--r-- | src/api/environment.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/api/environment.cc b/src/api/environment.cc index 4cb2da4b86..3a7e06d8d0 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -279,6 +279,14 @@ Isolate* NewIsolate(ArrayBufferAllocator* allocator, return NewIsolate(¶ms, event_loop, platform); } +Isolate* NewIsolate(std::shared_ptr<ArrayBufferAllocator> allocator, + uv_loop_t* event_loop, + MultiIsolatePlatform* platform) { + Isolate::CreateParams params; + if (allocator) params.array_buffer_allocator_shared = allocator; + return NewIsolate(¶ms, event_loop, platform); +} + IsolateData* CreateIsolateData(Isolate* isolate, uv_loop_t* loop, MultiIsolatePlatform* platform, |