Index: third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
index f2c049db85f3b606f91f425b876d1cb1ad19f2a5..8a380407d74a01772d273d9f53e5c328b145247a 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
@@ -290,8 +290,9 @@ static void initializeV8Common(v8::Isolate* isolate) |
isolate->AddGCPrologueCallback(V8GCController::gcPrologue); |
isolate->AddGCEpilogueCallback(V8GCController::gcEpilogue); |
if (RuntimeEnabledFeatures::traceWrappablesEnabled()) { |
- ScriptWrappableVisitor* visitor = new ScriptWrappableVisitor(isolate); |
- isolate->SetEmbedderHeapTracer(visitor); |
+ std::unique_ptr<ScriptWrappableVisitor> visitor = std::unique_ptr<ScriptWrappableVisitor>(new ScriptWrappableVisitor(isolate)); |
haraken
2016/06/03 14:22:45
std::unique_ptr<> visitor(new ...);
|
+ isolate->SetEmbedderHeapTracer(visitor.get()); |
+ V8PerIsolateData::from(isolate)->setScriptWrappableVisitor(std::move(visitor)); |
} |
v8::Debug::SetLiveEditEnabled(isolate, false); |
@@ -371,6 +372,7 @@ void V8Initializer::shutdownMainThread() |
{ |
ASSERT(isMainThread()); |
v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); |
+ isolate->SetEmbedderHeapTracer(nullptr); |
V8PerIsolateData::willBeDestroyed(isolate); |
V8PerIsolateData::destroy(isolate); |
} |