Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1107)

Side by Side Diff: gin/isolate_holder.cc

Issue 2897853002: [gin] Make a new IsolateHolder ctor for snapshot (Closed)
Patch Set: Create SnapshotCreator in IsolateHolder Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | gin/public/isolate_holder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gin/public/isolate_holder.h" 5 #include "gin/public/isolate_holder.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 #include <string.h> 9 #include <string.h>
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 size_t size; 61 size_t size;
62 isolate_->GetCodeRange(&code_range, &size); 62 isolate_->GetCodeRange(&code_range, &size);
63 Debug::CodeRangeCreatedCallback callback = 63 Debug::CodeRangeCreatedCallback callback =
64 DebugImpl::GetCodeRangeCreatedCallback(); 64 DebugImpl::GetCodeRangeCreatedCallback();
65 if (code_range && size && callback) 65 if (code_range && size && callback)
66 callback(code_range, size); 66 callback(code_range, size);
67 } 67 }
68 #endif 68 #endif
69 } 69 }
70 70
71 IsolateHolder::IsolateHolder(intptr_t* reference_table,
72 v8::StartupData* existing_blob)
73 : snapshot_creator_(
74 new v8::SnapshotCreator(reference_table, existing_blob)),
75 access_mode_(kSingleThread) {
76 v8::ArrayBuffer::Allocator* allocator = g_array_buffer_allocator;
77 CHECK(allocator) << "You need to invoke gin::IsolateHolder::Initialize first";
78 isolate_ = snapshot_creator_->GetIsolate();
79 isolate_data_.reset(
80 new PerIsolateData(isolate_, allocator, access_mode_, nullptr));
81 isolate_memory_dump_provider_.reset(new V8IsolateMemoryDumpProvider(this));
82 #if defined(OS_WIN)
83 {
84 void* code_range;
85 size_t size;
86 isolate_->GetCodeRange(&code_range, &size);
87 Debug::CodeRangeCreatedCallback callback =
88 DebugImpl::GetCodeRangeCreatedCallback();
89 if (code_range && size && callback)
90 callback(code_range, size);
91 }
92 #endif
93 }
94
71 IsolateHolder::~IsolateHolder() { 95 IsolateHolder::~IsolateHolder() {
72 if (task_observer_.get()) 96 if (task_observer_.get())
73 base::MessageLoop::current()->RemoveTaskObserver(task_observer_.get()); 97 base::MessageLoop::current()->RemoveTaskObserver(task_observer_.get());
74 #if defined(OS_WIN) 98 #if defined(OS_WIN)
75 { 99 {
76 void* code_range; 100 void* code_range;
77 size_t size; 101 size_t size;
78 isolate_->GetCodeRange(&code_range, &size); 102 isolate_->GetCodeRange(&code_range, &size);
79 Debug::CodeRangeDeletedCallback callback = 103 Debug::CodeRangeDeletedCallback callback =
80 DebugImpl::GetCodeRangeDeletedCallback(); 104 DebugImpl::GetCodeRangeDeletedCallback();
(...skipping 28 matching lines...) Expand all
109 task_observer_.reset(); 133 task_observer_.reset();
110 } 134 }
111 135
112 void IsolateHolder::EnableIdleTasks( 136 void IsolateHolder::EnableIdleTasks(
113 std::unique_ptr<V8IdleTaskRunner> idle_task_runner) { 137 std::unique_ptr<V8IdleTaskRunner> idle_task_runner) {
114 DCHECK(isolate_data_.get()); 138 DCHECK(isolate_data_.get());
115 isolate_data_->EnableIdleTasks(std::move(idle_task_runner)); 139 isolate_data_->EnableIdleTasks(std::move(idle_task_runner));
116 } 140 }
117 141
118 } // namespace gin 142 } // namespace gin
OLDNEW
« no previous file with comments | « no previous file | gin/public/isolate_holder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698