summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-05-23 01:41:49 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-06-07 05:03:02 +0200
commit8eab1ca570989591f3f6a44e74a56a72428a9922 (patch)
treeef9bdab2a98283f178b83ec7a833199b5bf94b5f /chart2
parentbc0e7a03c0594fe298d277c4b0889ba55d6f5e7c (diff)
Lsan: fix memory leaks
Change-Id: I35adb022f12c6833f4f29b2e8dad44394a2c4be5
Diffstat (limited to 'chart2')
-rw-r--r--chart2/source/view/main/GL3DRenderer.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx
index d6c1dff034b2..a42220ea4bbf 100644
--- a/chart2/source/view/main/GL3DRenderer.cxx
+++ b/chart2/source/view/main/GL3DRenderer.cxx
@@ -840,6 +840,19 @@ void OpenGL3DRenderer::RenderPolygon3D(Polygon3DInfo &polygon)
glUseProgram(0);
}
+namespace {
+
+template< typename T >
+struct DeletePointer
+{
+ void operator()(T* p)
+ {
+ delete p;
+ }
+};
+
+}
+
void OpenGL3DRenderer::RenderPolygon3DObject()
{
glDepthMask(GL_FALSE);
@@ -856,6 +869,10 @@ void OpenGL3DRenderer::RenderPolygon3DObject()
{
RenderPolygon3D(polygon);
}
+ std::for_each(polygon.verticesList.begin(),
+ polygon.verticesList.end(), DeletePointer<Vertices3D>());
+ std::for_each(polygon.normalsList.begin(),
+ polygon.normalsList.end(), DeletePointer<Normals3D>());
m_Polygon3DInfoList.pop_front();
}
glDepthMask(GL_TRUE);