| Index: Source/core/html/canvas/WebGLRenderbuffer.cpp
|
| diff --git a/Source/core/html/canvas/WebGLRenderbuffer.cpp b/Source/core/html/canvas/WebGLRenderbuffer.cpp
|
| index 7e3bea04a6c0f1d6f6be3a445d9ab96ca9e27dba..905ea445af33e68b1a3c88cbdf4392eb7436a9ed 100644
|
| --- a/Source/core/html/canvas/WebGLRenderbuffer.cpp
|
| +++ b/Source/core/html/canvas/WebGLRenderbuffer.cpp
|
| @@ -31,14 +31,25 @@
|
|
|
| namespace blink {
|
|
|
| -PassRefPtr<WebGLRenderbuffer> WebGLRenderbuffer::create(WebGLRenderingContextBase* ctx)
|
| +PassRefPtrWillBeRawPtr<WebGLRenderbuffer> WebGLRenderbuffer::create(WebGLRenderingContextBase* ctx)
|
| {
|
| - return adoptRef(new WebGLRenderbuffer(ctx));
|
| + return adoptRefWillBeNoop(new WebGLRenderbuffer(ctx));
|
| }
|
|
|
| WebGLRenderbuffer::~WebGLRenderbuffer()
|
| {
|
| - deleteObject(0);
|
| +#if ENABLE(OILPAN)
|
| + // This render buffer (heap) object must finalize itself.
|
| + m_emulatedStencilBuffer.clear();
|
| +#endif
|
| + // Always call detach here to ensure that platform object deletion
|
| + // happens with Oilpan enabled. It keeps the code regular to do it
|
| + // with or without Oilpan enabled.
|
| + //
|
| + // See comment in WebGLBuffer's destructor for additional
|
| + // information on why this is done for WebGLSharedObject-derived
|
| + // objects.
|
| + detachAndDeleteObject();
|
| }
|
|
|
| WebGLRenderbuffer::WebGLRenderbuffer(WebGLRenderingContextBase* ctx)
|
| @@ -66,4 +77,10 @@ void WebGLRenderbuffer::deleteEmulatedStencilBuffer(blink::WebGraphicsContext3D*
|
| m_emulatedStencilBuffer.clear();
|
| }
|
|
|
| +void WebGLRenderbuffer::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_emulatedStencilBuffer);
|
| + WebGLSharedObject::trace(visitor);
|
| +}
|
| +
|
| }
|
|
|