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)
isolate->AddGCPrologueCallback(V8GCController::gcPrologue);
isolate->AddGCEpilogueCallback(V8GCController::gcEpilogue);
if (RuntimeEnabledFeatures::traceWrappablesEnabled()) {
ScriptWrappableVisitor* visitor = new ScriptWrappableVisitor(isolate);
isolate->SetEmbedderHeapTracer(visitor);
std::unique_ptr<ScriptWrappableVisitor> visitor(new ScriptWrappableVisitor(isolate));
isolate->SetEmbedderHeapTracer(visitor.get());
V8PerIsolateData::from(isolate)->setScriptWrappableVisitor(std::move(visitor));
}
v8::Debug::SetLiveEditEnabled(isolate, false);
......
......@@ -28,6 +28,7 @@
#include "bindings/core/v8/ScopedPersistent.h"
#include "bindings/core/v8/ScriptState.h"
#include "bindings/core/v8/ScriptWrappableVisitor.h"
#include "bindings/core/v8/V8HiddenValue.h"
#include "bindings/core/v8/WrapperTypeInfo.h"
#include "core/CoreExport.h"
......@@ -146,6 +147,9 @@ public:
void addActiveScriptWrappable(ActiveScriptWrappable*);
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:
V8PerIsolateData();
~V8PerIsolateData();
......@@ -188,6 +192,7 @@ private:
OwnPtr<ThreadDebugger> m_threadDebugger;
Persistent<ActiveScriptWrappableSet> m_activeScriptWrappables;
std::unique_ptr<ScriptWrappableVisitor> m_scriptWrappableVisitor;
};
} // 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