summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp
diff options
context:
space:
mode:
authorPierre-Antoine LaFayette <plafayet@codeaurora.org>2012-10-10 13:43:45 -0400
committerSteve Kondik <shade@chemlab.org>2013-01-20 18:38:31 -0800
commitc018655c37a1da5d7e1f9dc94d0467130cf630f1 (patch)
tree1fdea05f45d91439905ed7904b194e4747342364 /Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp
parent77ab7f788fa2de43390a0ddb447c94a191284e88 (diff)
downloadexternal_webkit-c018655c37a1da5d7e1f9dc94d0467130cf630f1.zip
external_webkit-c018655c37a1da5d7e1f9dc94d0467130cf630f1.tar.gz
external_webkit-c018655c37a1da5d7e1f9dc94d0467130cf630f1.tar.bz2
Fix for memory leak in WebGL
CRs-fixed: 407009 (cherry-picked from commit 796a2a4cc637a3b04ee845e595b081e826207924) Change-Id: I584fe07dd5887ed52b74bc84044d510f8a2e2ba8
Diffstat (limited to 'Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp b/Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp
index 85c9719..7855739 100644
--- a/Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp
+++ b/Source/WebCore/platform/graphics/android/GraphicsContext3DInternal.cpp
@@ -170,8 +170,8 @@ GLint GraphicsContext3DInternal::checkGLError(const char* s)
GraphicsContext3DInternal::GraphicsContext3DInternal(HTMLCanvasElement* canvas,
GraphicsContext3D::Attributes attrs,
HostWindow* hostWindow)
- : m_proxy(new GraphicsContext3DProxy())
- , m_compositingLayer(new WebGLLayer(m_proxy.get()))
+ : m_proxy(adoptRef(new GraphicsContext3DProxy()))
+ , m_compositingLayer(new WebGLLayer(m_proxy))
, m_canvas(canvas)
, m_attrs(attrs)
, m_layerComposited(false)
@@ -200,7 +200,6 @@ GraphicsContext3DInternal::GraphicsContext3DInternal(HTMLCanvasElement* canvas,
}
LOGWEBGL("GraphicsContext3DInternal() = %p, m_compositingLayer = %p", this, m_compositingLayer);
- m_compositingLayer->ref();
m_proxy->setGraphicsContext(this);
if (!m_canvas || !m_canvas->document() || !m_canvas->document()->view())
@@ -284,7 +283,7 @@ GraphicsContext3DInternal::~GraphicsContext3DInternal()
m_proxy->setGraphicsContext(0);
MutexLocker lock(m_fboMutex);
- m_compositingLayer->unref();
+ SkSafeUnref(m_compositingLayer);
m_compositingLayer = 0;
deleteContext(true);