Index: Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp |
diff --git a/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp b/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp |
index 6c12bccb7048db6bf46c1ecee414aec519394be5..d8660b29835d6569787d3c36fa14dcb9fc59cbbf 100644 |
--- a/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp |
+++ b/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp |
@@ -31,9 +31,9 @@ |
namespace WebCore { |
-PassRefPtr<WebGLVertexArrayObjectOES> WebGLVertexArrayObjectOES::create(WebGLRenderingContextBase* ctx, VaoType type) |
+PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> WebGLVertexArrayObjectOES::create(WebGLRenderingContextBase* ctx, VaoType type) |
{ |
- return adoptRef(new WebGLVertexArrayObjectOES(ctx, type)); |
+ return adoptRefWillBeNoop(new WebGLVertexArrayObjectOES(ctx, type)); |
} |
WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES(WebGLRenderingContextBase* ctx, VaoType type) |
@@ -56,7 +56,11 @@ WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES(WebGLRenderingContextBase* |
WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES() |
{ |
- deleteObject(0); |
+#if ENABLE(OILPAN) |
+ m_boundElementArrayBuffer = nullptr; |
+ m_vertexAttribState.clear(); |
+#endif |
+ detachAndDeleteObject(); |
Ken Russell (switch to Gerrit)
2014/07/19 00:27:16
Please add a comment about the need to manually ca
sof
2014/07/19 19:55:57
Added
|
} |
void WebGLVertexArrayObjectOES::deleteObjectImpl(blink::WebGraphicsContext3D* context3d, Platform3DObject object) |
@@ -65,7 +69,7 @@ void WebGLVertexArrayObjectOES::deleteObjectImpl(blink::WebGraphicsContext3D* co |
case VaoTypeDefault: |
break; |
default: |
- context()->webContext()->deleteVertexArrayOES(object); |
+ context3d->deleteVertexArrayOES(object); |
break; |
} |
@@ -79,18 +83,17 @@ void WebGLVertexArrayObjectOES::deleteObjectImpl(blink::WebGraphicsContext3D* co |
} |
} |
-void WebGLVertexArrayObjectOES::setElementArrayBuffer(PassRefPtr<WebGLBuffer> buffer) |
+void WebGLVertexArrayObjectOES::setElementArrayBuffer(PassRefPtrWillBeRawPtr<WebGLBuffer> buffer) |
{ |
if (buffer) |
buffer->onAttached(); |
if (m_boundElementArrayBuffer) |
m_boundElementArrayBuffer->onDetached(context()->webContext()); |
m_boundElementArrayBuffer = buffer; |
- |
} |
void WebGLVertexArrayObjectOES::setVertexAttribState( |
- GLuint index, GLsizei bytesPerElement, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset, PassRefPtr<WebGLBuffer> buffer) |
+ GLuint index, GLsizei bytesPerElement, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset, PassRefPtrWillBeRawPtr<WebGLBuffer> buffer) |
{ |
GLsizei validatedStride = stride ? stride : bytesPerElement; |
@@ -111,7 +114,7 @@ void WebGLVertexArrayObjectOES::setVertexAttribState( |
state.offset = offset; |
} |
-void WebGLVertexArrayObjectOES::unbindBuffer(PassRefPtr<WebGLBuffer> buffer) |
+void WebGLVertexArrayObjectOES::unbindBuffer(PassRefPtrWillBeRawPtr<WebGLBuffer> buffer) |
{ |
if (m_boundElementArrayBuffer == buffer) { |
m_boundElementArrayBuffer->onDetached(context()->webContext()); |
@@ -133,4 +136,16 @@ void WebGLVertexArrayObjectOES::setVertexAttribDivisor(GLuint index, GLuint divi |
state.divisor = divisor; |
} |
+void WebGLVertexArrayObjectOES::VertexAttribState::trace(Visitor* visitor) |
+{ |
+ visitor->trace(bufferBinding); |
+} |
+ |
+void WebGLVertexArrayObjectOES::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_boundElementArrayBuffer); |
+ visitor->trace(m_vertexAttribState); |
+ WebGLContextObject::trace(visitor); |
+} |
+ |
} |