summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjianliang79 <jianliang79@gmail.com>2009-12-30 12:58:22 (GMT)
committerTom Cooksey <thomas.cooksey@nokia.com>2009-12-30 13:35:01 (GMT)
commitf005fb5b15eb387edb1a0d1da91639ac4cc1e67b (patch)
tree460ccd6defbe29fc8f8a7c61ac84ca075dea5d8a
parent5394052c422f7087263ad6dc6d6a4448b4c4afba (diff)
downloadQt-f005fb5b15eb387edb1a0d1da91639ac4cc1e67b.zip
Qt-f005fb5b15eb387edb1a0d1da91639ac4cc1e67b.tar.gz
Qt-f005fb5b15eb387edb1a0d1da91639ac4cc1e67b.tar.bz2
fix a memory leak in QGLEngineSharedShaders
Merge-request: 412 Reviewed-by: Tom Cooksey <thomas.cooksey@nokia.com>
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadermanager.cpp7
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadermanager_p.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
index da33eb3..b026e29 100644
--- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
+++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
@@ -218,6 +218,13 @@ QGLEngineSharedShaders::QGLEngineSharedShaders(const QGLContext* context)
}
+QGLEngineSharedShaders::~QGLEngineSharedShaders()
+{
+ QList<QGLEngineShaderProg*>::iterator itr;
+ for (itr = cachedPrograms.begin(); itr != cachedPrograms.end(); ++itr)
+ delete *itr;
+}
+
#if defined (QT_DEBUG)
QByteArray QGLEngineSharedShaders::snippetNameStr(SnippetName name)
{
diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h
index a132e1b..a3464d4 100644
--- a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h
+++ b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h
@@ -344,6 +344,7 @@ public:
*/
QGLEngineSharedShaders(const QGLContext *context);
+ ~QGLEngineSharedShaders();
QGLShaderProgram *simpleProgram() { return simpleShaderProg; }
QGLShaderProgram *blitProgram() { return blitShaderProg; }