aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2018-02-26 13:13:08 +0100
committerEirik Aavitsland <eirik.aavitsland@qt.io>2018-02-27 08:50:34 +0000
commit4c957192ac7edae80b468765ed68ab8dccd8d3ab (patch)
tree0546be7e8973c34c085d3a5a8bd12c14eb19b855 /src/quick/scenegraph
parente17c89f4ce74e5699ed50dc2187a39d8990316c4 (diff)
Fix memory leak in compressed texture file reading
The format handler object would never be deleted. Change-Id: I44e0740f8ab0404ebb2951865bfedc5a4c8227f3 Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'src/quick/scenegraph')
-rw-r--r--src/quick/scenegraph/compressedtexture/qsgtexturefilehandler_p.h1
-rw-r--r--src/quick/scenegraph/util/qsgtexturereader.cpp5
-rw-r--r--src/quick/scenegraph/util/qsgtexturereader_p.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/src/quick/scenegraph/compressedtexture/qsgtexturefilehandler_p.h b/src/quick/scenegraph/compressedtexture/qsgtexturefilehandler_p.h
index 43358b2846..8b831aebb9 100644
--- a/src/quick/scenegraph/compressedtexture/qsgtexturefilehandler_p.h
+++ b/src/quick/scenegraph/compressedtexture/qsgtexturefilehandler_p.h
@@ -67,6 +67,7 @@ public:
{
m_logName = !logName.isEmpty() ? logName : QByteArrayLiteral("(unknown)");
}
+ virtual ~QSGTextureFileHandler() {}
virtual QQuickTextureFactory *read() = 0;
QIODevice *device() const { return m_device; }
diff --git a/src/quick/scenegraph/util/qsgtexturereader.cpp b/src/quick/scenegraph/util/qsgtexturereader.cpp
index eb0caa59e4..8af2c8e7cd 100644
--- a/src/quick/scenegraph/util/qsgtexturereader.cpp
+++ b/src/quick/scenegraph/util/qsgtexturereader.cpp
@@ -55,6 +55,11 @@ QSGTextureReader::QSGTextureReader(QIODevice *device, const QString &fileName)
{
}
+QSGTextureReader::~QSGTextureReader()
+{
+ delete m_handler;
+}
+
QQuickTextureFactory *QSGTextureReader::read()
{
#if QT_CONFIG(opengl)
diff --git a/src/quick/scenegraph/util/qsgtexturereader_p.h b/src/quick/scenegraph/util/qsgtexturereader_p.h
index 1d874f840c..19e33bf5c3 100644
--- a/src/quick/scenegraph/util/qsgtexturereader_p.h
+++ b/src/quick/scenegraph/util/qsgtexturereader_p.h
@@ -64,6 +64,7 @@ class QSGTextureReader
{
public:
QSGTextureReader(QIODevice *device, const QString &fileName = QString());
+ ~QSGTextureReader();
QQuickTextureFactory *read();
bool isTexture();