Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(911)

Unified Diff: Source/core/html/canvas/WebGLContextObject.cpp

Issue 365653002: Oilpan: move 2D Canvas and WebGL objects to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Smaller adjustments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/html/canvas/WebGLContextObject.cpp
diff --git a/Source/core/html/canvas/WebGLContextObject.cpp b/Source/core/html/canvas/WebGLContextObject.cpp
index 4a85e57771adbec4d0e337f9af49562cebbb17bf..b8316704b9f77ce20f5d270efdf3e888d63d7b80 100644
--- a/Source/core/html/canvas/WebGLContextObject.cpp
+++ b/Source/core/html/canvas/WebGLContextObject.cpp
@@ -28,19 +28,25 @@
#include "core/html/canvas/WebGLContextObject.h"
#include "core/html/canvas/WebGLRenderingContextBase.h"
+#include "core/html/canvas/WebGLSharedWebGraphicsContext3D.h"
namespace blink {
WebGLContextObject::WebGLContextObject(WebGLRenderingContextBase* context)
: WebGLObject(context)
, m_context(context)
+#if ENABLE(OILPAN)
+ , m_sharedWebGraphicsContext3D(context->sharedWebGraphicsContext3D())
+#endif
{
}
WebGLContextObject::~WebGLContextObject()
{
+#if !ENABLE(OILPAN)
if (m_context)
m_context->removeContextObject(this);
+#endif
}
void WebGLContextObject::detachContext()
@@ -49,13 +55,26 @@ void WebGLContextObject::detachContext()
if (m_context) {
deleteObject(m_context->webContext());
m_context->removeContextObject(this);
- m_context = 0;
+ m_context = nullptr;
+#if ENABLE(OILPAN)
+ m_sharedWebGraphicsContext3D.clear();
+#endif
}
}
blink::WebGraphicsContext3D* WebGLContextObject::getAWebGraphicsContext3D() const
{
+#if ENABLE(OILPAN)
+ return m_sharedWebGraphicsContext3D ? m_sharedWebGraphicsContext3D->webContext() : 0;
+#else
return m_context ? m_context->webContext() : 0;
+#endif
+}
+
+void WebGLContextObject::trace(Visitor* visitor)
+{
+ visitor->trace(m_context);
+ WebGLObject::trace(visitor);
}
}

Powered by Google App Engine
This is Rietveld 408576698