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

Unified Diff: third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h

Issue 2625093002: [wrapper-tracing] Add heap snapshot generator infrastructure (Closed)
Patch Set: Fix leftover Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h
index b4e05891a44b8bf5df5ffde47e5a3814f974f91a..2b5bd4d9e5a9afa300fae8fe971148312a8d2d60 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h
+++ b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h
@@ -167,6 +167,32 @@ class CORE_EXPORT V8PerIsolateData {
return m_activeScriptWrappables.get();
}
+ class TemporaryScriptWrappableVisitorScope {
+ WTF_MAKE_NONCOPYABLE(TemporaryScriptWrappableVisitorScope);
+ STACK_ALLOCATED();
+
+ public:
+ TemporaryScriptWrappableVisitorScope(v8::Isolate* isolate,
+ ScriptWrappableVisitor* visitor)
+ : m_isolate(isolate) {
+ m_savedVisitor = currentVisitor(m_isolate);
+ swapInNewVisitor(visitor);
+ }
+ ~TemporaryScriptWrappableVisitorScope() {
+ swapInNewVisitor(m_savedVisitor);
+ }
+
+ private:
+ inline ScriptWrappableVisitor* currentVisitor(v8::Isolate* isolate) {
+ return V8PerIsolateData::from(m_isolate)->scriptWrappableVisitor();
+ }
+
+ void swapInNewVisitor(ScriptWrappableVisitor*);
haraken 2017/01/12 16:25:18 Nit: swapInNewVisitor => setVisitor ? (Swap sound
Michael Lippautz 2017/01/13 15:08:40 Done.
+
+ v8::Isolate* m_isolate;
+ ScriptWrappableVisitor* m_savedVisitor;
+ };
+
void setScriptWrappableVisitor(
std::unique_ptr<ScriptWrappableVisitor> visitor) {
m_scriptWrappableVisitor = std::move(visitor);

Powered by Google App Engine
This is Rietveld 408576698