Commit 88755a1f authored by hlopko's avatar hlopko Committed by Commit bot

Store ScriptWrappableVisitor in V8PerIsolateData

Store a reference of ScriptWrappableVisitor also in V8PerIsolateData so it can
be accessed from blink code easily (for example when oilpan will want to trace
ScriptWrappableVisitor's marking deque :)

LOG=no
BUG=468240

Review-Url: https://codereview.chromium.org/2033583007
Cr-Commit-Position: refs/heads/master@{#398003}
parent 3836192c
...@@ -290,8 +290,9 @@ static void initializeV8Common(v8::Isolate* isolate) ...@@ -290,8 +290,9 @@ static void initializeV8Common(v8::Isolate* isolate)
isolate->AddGCPrologueCallback(V8GCController::gcPrologue); isolate->AddGCPrologueCallback(V8GCController::gcPrologue);
isolate->AddGCEpilogueCallback(V8GCController::gcEpilogue); isolate->AddGCEpilogueCallback(V8GCController::gcEpilogue);
if (RuntimeEnabledFeatures::traceWrappablesEnabled()) { if (RuntimeEnabledFeatures::traceWrappablesEnabled()) {
ScriptWrappableVisitor* visitor = new ScriptWrappableVisitor(isolate); std::unique_ptr<ScriptWrappableVisitor> visitor(new ScriptWrappableVisitor(isolate));
isolate->SetEmbedderHeapTracer(visitor); isolate->SetEmbedderHeapTracer(visitor.get());
V8PerIsolateData::from(isolate)->setScriptWrappableVisitor(std::move(visitor));
} }
v8::Debug::SetLiveEditEnabled(isolate, false); v8::Debug::SetLiveEditEnabled(isolate, false);
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "bindings/core/v8/ScopedPersistent.h" #include "bindings/core/v8/ScopedPersistent.h"
#include "bindings/core/v8/ScriptState.h" #include "bindings/core/v8/ScriptState.h"
#include "bindings/core/v8/ScriptWrappableVisitor.h"
#include "bindings/core/v8/V8HiddenValue.h" #include "bindings/core/v8/V8HiddenValue.h"
#include "bindings/core/v8/WrapperTypeInfo.h" #include "bindings/core/v8/WrapperTypeInfo.h"
#include "core/CoreExport.h" #include "core/CoreExport.h"
...@@ -146,6 +147,9 @@ public: ...@@ -146,6 +147,9 @@ public:
void addActiveScriptWrappable(ActiveScriptWrappable*); void addActiveScriptWrappable(ActiveScriptWrappable*);
const ActiveScriptWrappableSet* activeScriptWrappables() const { return m_activeScriptWrappables.get(); } const ActiveScriptWrappableSet* activeScriptWrappables() const { return m_activeScriptWrappables.get(); }
void setScriptWrappableVisitor(std::unique_ptr<ScriptWrappableVisitor> visitor) { m_scriptWrappableVisitor = std::move(visitor); }
ScriptWrappableVisitor* scriptWrappableVisitor() { return m_scriptWrappableVisitor.get(); }
private: private:
V8PerIsolateData(); V8PerIsolateData();
~V8PerIsolateData(); ~V8PerIsolateData();
...@@ -188,6 +192,7 @@ private: ...@@ -188,6 +192,7 @@ private:
OwnPtr<ThreadDebugger> m_threadDebugger; OwnPtr<ThreadDebugger> m_threadDebugger;
Persistent<ActiveScriptWrappableSet> m_activeScriptWrappables; Persistent<ActiveScriptWrappableSet> m_activeScriptWrappables;
std::unique_ptr<ScriptWrappableVisitor> m_scriptWrappableVisitor;
}; };
} // namespace blink } // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment