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

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

Issue 2539113002: [wrapper-tracing] Fix WebGL extension and attachment handling (Closed)
Patch Set: Rebase 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 b2fd1fb435bd5f30058dd032823f5755ac72a269..b604fb2c75493d58b03ff8cc846d1a5755934fd5 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
@@ -792,7 +792,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) {}
@@ -858,17 +859,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) {}
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