1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Samuel Attard <[email protected]>
- Date: Thu, 18 Oct 2018 17:07:27 -0700
- Subject: isolate_holder.patch
- Pass pre allocated isolate for initialization, node platform
- needs to register on an isolate so that it can be used later
- down in the initialization process of an isolate.
- diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc
- index c3ae4c6221686479d05800c51d17d581c095e397..e4c8a194418dc62f0e0222c08fe9ad39a4b9b9af 100644
- --- a/gin/isolate_holder.cc
- +++ b/gin/isolate_holder.cc
- @@ -53,7 +53,8 @@ IsolateHolder::IsolateHolder(
- AccessMode access_mode,
- AllowAtomicsWaitMode atomics_wait_mode,
- IsolateType isolate_type,
- - IsolateCreationMode isolate_creation_mode)
- + IsolateCreationMode isolate_creation_mode,
- + v8::Isolate* isolate)
- : access_mode_(access_mode), isolate_type_(isolate_type) {
- DCHECK(task_runner);
- DCHECK(task_runner->BelongsToCurrentThread());
- @@ -61,7 +62,11 @@ IsolateHolder::IsolateHolder(
- v8::ArrayBuffer::Allocator* allocator = g_array_buffer_allocator;
- CHECK(allocator) << "You need to invoke gin::IsolateHolder::Initialize first";
-
- - isolate_ = v8::Isolate::Allocate();
- + if (!isolate) {
- + isolate_ = v8::Isolate::Allocate();
- + } else {
- + isolate_ = isolate;
- + }
- isolate_data_.reset(
- new PerIsolateData(isolate_, allocator, access_mode_, task_runner));
- if (isolate_creation_mode == IsolateCreationMode::kCreateSnapshot) {
- diff --git a/gin/public/isolate_holder.h b/gin/public/isolate_holder.h
- index ede178acabc63c3c33d6ce93efd5632bec50ba89..ffe7331cf1806417a32e66970f81b7797b9b80fc 100644
- --- a/gin/public/isolate_holder.h
- +++ b/gin/public/isolate_holder.h
- @@ -75,7 +75,8 @@ class GIN_EXPORT IsolateHolder {
- AccessMode access_mode,
- AllowAtomicsWaitMode atomics_wait_mode,
- IsolateType isolate_type,
- - IsolateCreationMode isolate_creation_mode = IsolateCreationMode::kNormal);
- + IsolateCreationMode isolate_creation_mode = IsolateCreationMode::kNormal,
- + v8::Isolate* isolate = nullptr);
- ~IsolateHolder();
-
- // Should be invoked once before creating IsolateHolder instances to
|