| Index: gin/isolate_holder.cc
|
| diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc
|
| index 2e707359ca70f51778e179a74c26c95060ed52a1..d42607d86ddea5d4c0915509e1b2dc72ca664176 100644
|
| --- a/gin/isolate_holder.cc
|
| +++ b/gin/isolate_holder.cc
|
| @@ -68,6 +68,30 @@ IsolateHolder::IsolateHolder(
|
| #endif
|
| }
|
|
|
| +IsolateHolder::IsolateHolder(intptr_t* reference_table,
|
| + v8::StartupData* existing_blob)
|
| + : snapshot_creator_(
|
| + new v8::SnapshotCreator(reference_table, existing_blob)),
|
| + access_mode_(kSingleThread) {
|
| + v8::ArrayBuffer::Allocator* allocator = g_array_buffer_allocator;
|
| + CHECK(allocator) << "You need to invoke gin::IsolateHolder::Initialize first";
|
| + isolate_ = snapshot_creator_->GetIsolate();
|
| + isolate_data_.reset(
|
| + new PerIsolateData(isolate_, allocator, access_mode_, nullptr));
|
| + isolate_memory_dump_provider_.reset(new V8IsolateMemoryDumpProvider(this));
|
| +#if defined(OS_WIN)
|
| + {
|
| + void* code_range;
|
| + size_t size;
|
| + isolate_->GetCodeRange(&code_range, &size);
|
| + Debug::CodeRangeCreatedCallback callback =
|
| + DebugImpl::GetCodeRangeCreatedCallback();
|
| + if (code_range && size && callback)
|
| + callback(code_range, size);
|
| + }
|
| +#endif
|
| +}
|
| +
|
| IsolateHolder::~IsolateHolder() {
|
| if (task_observer_.get())
|
| base::MessageLoop::current()->RemoveTaskObserver(task_observer_.get());
|
|
|