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

Unified Diff: third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.cpp

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/WebGLFramebuffer.cpp
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.cpp b/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.cpp
index 178f8d14a49e5103f29408adc77ba5d348b1202a..e4e7bcd0dad5071bcbf66284ad842fc88898342e 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.cpp
@@ -40,6 +40,9 @@ class WebGLRenderbufferAttachment final
static WebGLFramebuffer::WebGLAttachment* create(WebGLRenderbuffer*);
DECLARE_VIRTUAL_TRACE();
+ DEFINE_INLINE_VIRTUAL_TRACE_WRAPPERS() {
+ visitor->traceWrappers(m_renderbuffer);
+ }
private:
explicit WebGLRenderbufferAttachment(WebGLRenderbuffer*);
@@ -55,7 +58,7 @@ class WebGLRenderbufferAttachment final
GLenum target,
GLenum attachment) override;
- Member<WebGLRenderbuffer> m_renderbuffer;
+ TraceWrapperMember<WebGLRenderbuffer> m_renderbuffer;
};
WebGLFramebuffer::WebGLAttachment* WebGLRenderbufferAttachment::create(
@@ -70,7 +73,7 @@ DEFINE_TRACE(WebGLRenderbufferAttachment) {
WebGLRenderbufferAttachment::WebGLRenderbufferAttachment(
WebGLRenderbuffer* renderbuffer)
- : m_renderbuffer(renderbuffer) {}
+ : m_renderbuffer(this, renderbuffer) {}
WebGLSharedObject* WebGLRenderbufferAttachment::object() const {
return m_renderbuffer->object() ? m_renderbuffer.get() : 0;
@@ -110,6 +113,7 @@ class WebGLTextureAttachment final : public WebGLFramebuffer::WebGLAttachment {
GLint layer);
DECLARE_VIRTUAL_TRACE();
+ DEFINE_INLINE_VIRTUAL_TRACE_WRAPPERS() { visitor->traceWrappers(m_texture); }
private:
WebGLTextureAttachment(WebGLTexture*,
@@ -128,7 +132,7 @@ class WebGLTextureAttachment final : public WebGLFramebuffer::WebGLAttachment {
GLenum target,
GLenum attachment) override;
- Member<WebGLTexture> m_texture;
+ TraceWrapperMember<WebGLTexture> m_texture;
GLenum m_target;
GLint m_level;
GLint m_layer;
@@ -151,7 +155,10 @@ WebGLTextureAttachment::WebGLTextureAttachment(WebGLTexture* texture,
GLenum target,
GLint level,
GLint layer)
- : m_texture(texture), m_target(target), m_level(level), m_layer(layer) {}
+ : m_texture(this, texture),
+ m_target(target),
+ m_level(level),
+ m_layer(layer) {}
WebGLSharedObject* WebGLTextureAttachment::object() const {
return m_texture->object() ? m_texture.get() : 0;
@@ -540,7 +547,7 @@ DEFINE_TRACE(WebGLFramebuffer) {
DEFINE_TRACE_WRAPPERS(WebGLFramebuffer) {
for (const auto& attachment : m_attachments) {
- visitor->traceWrappers(attachment.value->object());
+ visitor->traceWrappers(attachment.value);
}
WebGLContextObject::traceWrappers(visitor);
}

Powered by Google App Engine
This is Rietveld 408576698