| 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];
|
|
|