Chromium Code Reviews| Index: Source/core/html/canvas/WebGLProgram.cpp |
| diff --git a/Source/core/html/canvas/WebGLProgram.cpp b/Source/core/html/canvas/WebGLProgram.cpp |
| index e1e49594139fa2240e470bc50a743be707379c4e..cdd3565ef37abff52a813be0e0651a4ae7dd08da 100644 |
| --- a/Source/core/html/canvas/WebGLProgram.cpp |
| +++ b/Source/core/html/canvas/WebGLProgram.cpp |
| @@ -27,13 +27,14 @@ |
| #include "core/html/canvas/WebGLProgram.h" |
| +#include "core/html/canvas/WebGLContextGroup.h" |
| #include "core/html/canvas/WebGLRenderingContextBase.h" |
| namespace WebCore { |
| -PassRefPtr<WebGLProgram> WebGLProgram::create(WebGLRenderingContextBase* ctx) |
| +PassRefPtrWillBeRawPtr<WebGLProgram> WebGLProgram::create(WebGLRenderingContextBase* ctx) |
| { |
| - return adoptRef(new WebGLProgram(ctx)); |
| + return adoptRefWillBeNoop(new WebGLProgram(ctx)); |
| } |
| WebGLProgram::WebGLProgram(WebGLRenderingContextBase* ctx) |
| @@ -48,6 +49,11 @@ WebGLProgram::WebGLProgram(WebGLRenderingContextBase* ctx) |
| WebGLProgram::~WebGLProgram() |
| { |
| +#if ENABLE(OILPAN) |
|
Mads Ager (chromium)
2014/07/11 09:15:01
Instead of clearing the pointers here could we #if
|
| + m_vertexShader = nullptr; |
| + m_fragmentShader = nullptr; |
| +#endif |
| + detach(); |
| deleteObject(0); |
| } |
| @@ -174,7 +180,9 @@ void WebGLProgram::cacheInfoIfNeeded() |
| if (!object()) |
| return; |
| - blink::WebGraphicsContext3D* context = getAWebGraphicsContext3D(); |
| + if (!contextGroup()) |
| + return; |
| + blink::WebGraphicsContext3D* context = contextGroup()->getAWebGraphicsContext3D(); |
| if (!context) |
| return; |
| GLint linkStatus = 0; |
| @@ -185,4 +193,11 @@ void WebGLProgram::cacheInfoIfNeeded() |
| m_infoValid = true; |
| } |
| +void WebGLProgram::trace(Visitor* visitor) |
| +{ |
| + visitor->trace(m_vertexShader); |
| + visitor->trace(m_fragmentShader); |
| + WebGLSharedObject::trace(visitor); |
| +} |
| + |
| } |