diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-05-23 01:41:49 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-05-23 02:50:41 +0200 |
commit | 3bb9a29081b31ef4e68da9b648742e6874c393ff (patch) | |
tree | 6122bcbdf45a22fe6727a863f031ff0840785d99 | |
parent | 2b2fc70d2626a978b9593a04a234565c9abb26e7 (diff) |
Lsan: fix memory leaks
Change-Id: I35adb022f12c6833f4f29b2e8dad44394a2c4be5
-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); |