Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp |
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp |
| index e6e7ce8ed3835089017642f63ae9bedf72b2b30e..ccaebaffbcb8c9fd680a7d28b725a2fe65123411 100644 |
| --- a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp |
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp |
| @@ -397,4 +397,14 @@ void V8PerIsolateData::addActiveScriptWrappable( |
| m_activeScriptWrappables->add(wrappable); |
| } |
| +void V8PerIsolateData::TemporaryScriptWrappableVisitorScope::setVisitor( |
| + ScriptWrappableVisitor* visitor) { |
| + ScriptWrappableVisitor* current = currentVisitor(m_isolate); |
| + if (current) |
| + current->performCleanup(); |
|
haraken
2017/01/16 02:46:56
Would you elaborate on why it's okay to call perfo
Michael Lippautz
2017/01/16 10:45:06
We can only swap tracers when tracing is not yet s
haraken
2017/01/17 00:31:25
How is it guaranteed that V8GCController::getRetai
Michael Lippautz
2017/01/17 09:15:32
Yes, V8 guarantees that.
|
| + V8PerIsolateData::from(m_isolate)->m_scriptWrappableVisitor.release(); |
|
haraken
2017/01/16 02:46:56
Ah, you need .release() because you need to leak t
Michael Lippautz
2017/01/16 10:45:06
Ah, now I understand, thanks! Done.
|
| + V8PerIsolateData::from(m_isolate)->m_scriptWrappableVisitor.reset(visitor); |
| + m_isolate->SetEmbedderHeapTracer(visitor); |
| +} |
| + |
| } // namespace blink |