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

Unified Diff: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h

Issue 2539113002: [wrapper-tracing] Fix WebGL extension and attachment handling (Closed)
Patch Set: Fix wrapper tracing methods Created 4 years 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/modules/webgl/WebGLRenderingContextBase.h
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
index a7b105741259c5e6c2394d39e2cb4c2884ff18e0..26cc9fb217b595707e80169a1a65e6390187e175 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
@@ -806,7 +806,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
DraftExtension = 0x01,
};
- class ExtensionTracker : public GarbageCollected<ExtensionTracker> {
+ class ExtensionTracker : public GarbageCollected<ExtensionTracker>,
+ public TraceWrapperBase {
public:
ExtensionTracker(ExtensionFlags flags, const char* const* prefixes)
: m_draft(flags & DraftExtension), m_prefixes(prefixes) {}
@@ -872,17 +873,23 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
ExtensionTracker::trace(visitor);
}
+ DEFINE_INLINE_VIRTUAL_TRACE_WRAPPERS() {
+ visitor->traceWrappers(m_extension);
+ }
+
private:
TypedExtensionTracker(Member<T>& extensionField,
ExtensionFlags flags,
const char* const* prefixes)
- : ExtensionTracker(flags, prefixes), m_extensionField(extensionField) {}
+ : ExtensionTracker(flags, prefixes),
+ m_extensionField(extensionField),
+ m_extension(this, nullptr) {}
Michael Lippautz 2016/11/30 21:07:38 IIUC, then the TypedExtensionTracker should lazily
Ken Russell (switch to Gerrit) 2016/12/02 02:12:26 Yes, I think that's right. Sorry for the complexit
GC_PLUGIN_IGNORE("http://crbug.com/519953")
Member<T>& m_extensionField;
// ExtensionTracker holds it's own reference to the extension to ensure
// that it is not deleted before this object's destructor is called
- Member<T> m_extension;
+ TraceWrapperMember<T> m_extension;
};
bool m_extensionEnabled[WebGLExtensionNameCount];

Powered by Google App Engine
This is Rietveld 408576698