diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-05-23 01:41:49 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-06-07 05:03:02 +0200 |
commit | 8eab1ca570989591f3f6a44e74a56a72428a9922 (patch) | |
tree | ef9bdab2a98283f178b83ec7a833199b5bf94b5f /chart2 | |
parent | bc0e7a03c0594fe298d277c4b0889ba55d6f5e7c (diff) |
Lsan: fix memory leaks
Change-Id: I35adb022f12c6833f4f29b2e8dad44394a2c4be5
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/view/main/GL3DRenderer.cxx | 17 |
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); |