Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / html / canvas / WebGLVertexArrayObjectOES.h
index 71d5955..0b6ed25 100644 (file)
@@ -34,7 +34,8 @@
 
 namespace blink {
 
-class WebGLVertexArrayObjectOES FINAL : public WebGLContextObject, public ScriptWrappable {
+class WebGLVertexArrayObjectOES final : public WebGLContextObject, public ScriptWrappable {
+    DEFINE_WRAPPERTYPEINFO();
 public:
     enum VaoType {
         VaoTypeDefault,
@@ -46,7 +47,7 @@ public:
     static PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> create(WebGLRenderingContextBase*, VaoType);
 
     // Cached values for vertex attrib range checks
-    class VertexAttribState FINAL {
+    class VertexAttribState final {
         ALLOW_ONLY_INLINE_ALLOCATION();
     public:
         VertexAttribState()
@@ -89,15 +90,19 @@ public:
     void unbindBuffer(PassRefPtrWillBeRawPtr<WebGLBuffer>);
     void setVertexAttribDivisor(GLuint index, GLuint divisor);
 
-    virtual void trace(Visitor*) OVERRIDE;
+    virtual void trace(Visitor*) override;
 
 private:
     WebGLVertexArrayObjectOES(WebGLRenderingContextBase*, VaoType);
 
-    virtual void deleteObjectImpl(blink::WebGraphicsContext3D*, Platform3DObject) OVERRIDE;
+    void dispatchDetached(blink::WebGraphicsContext3D*);
+    virtual void deleteObjectImpl(blink::WebGraphicsContext3D*, Platform3DObject) override;
 
     VaoType m_type;
     bool m_hasEverBeenBound;
+#if ENABLE(OILPAN)
+    bool m_destructionInProgress;
+#endif
     RefPtrWillBeMember<WebGLBuffer> m_boundElementArrayBuffer;
     WillBeHeapVector<VertexAttribState> m_vertexAttribState;
 };
@@ -105,17 +110,14 @@ private:
 } // namespace blink
 
 namespace WTF {
+
 template<>
 struct VectorTraits<blink::WebGLVertexArrayObjectOES::VertexAttribState> : SimpleClassVectorTraits<blink::WebGLVertexArrayObjectOES::VertexAttribState> {
-    // Specialization needed as the VertexAttribState's struct fields
-    // aren't handled as desired by the IsPod() trait.
-#if ENABLE(OILPAN)
-    static const bool needsDestruction = false;
-#endif
     // Must use the constructor.
     static const bool canInitializeWithMemset = false;
     static const bool canCopyWithMemcpy = true;
 };
-}
+
+} // namespace WTF
 
 #endif // WebGLVertexArrayObjectOES_h