Index: Source/modules/webgl/WebGLShader.cpp |
diff --git a/Source/modules/webgl/WebGLShader.cpp b/Source/modules/webgl/WebGLShader.cpp |
index 6b99d306410d4aacc7bb0e3507e3d33a110cc3cd..45602bc7b3ab030cfc35aa2ae2379765977ad701 100644 |
--- a/Source/modules/webgl/WebGLShader.cpp |
+++ b/Source/modules/webgl/WebGLShader.cpp |
@@ -31,9 +31,9 @@ |
namespace blink { |
-WebGLShader* WebGLShader::create(WebGLRenderingContextBase* ctx, GLenum type) |
+PassRefPtrWillBeRawPtr<WebGLShader> WebGLShader::create(WebGLRenderingContextBase* ctx, GLenum type) |
{ |
- return new WebGLShader(ctx, type); |
+ return adoptRefWillBeNoop(new WebGLShader(ctx, type)); |
} |
WebGLShader::WebGLShader(WebGLRenderingContextBase* ctx, GLenum type) |
@@ -46,7 +46,13 @@ |
WebGLShader::~WebGLShader() |
{ |
- // See the comment in WebGLObject::detachAndDeleteObject(). |
+ // 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(); |
} |