aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler
diff options
context:
space:
mode:
authorJian Liang <jianliang79@gmail.com>2014-10-25 17:15:49 +0800
committerjian liang <jianliang79@gmail.com>2014-10-27 14:55:55 +0100
commit125befb309f5eccd80cbffd815396d35c49c08f2 (patch)
treed48b4bdea6f58cc57f47e961400a66976a4a9ca6 /src/qml/compiler
parent8f6436f125faae91eb472ddddbbae06dba5da671 (diff)
Fix QQmlTypeData object leak
Drop the refcount added in QQmlTypeLoader::getType() to prevent object leakage in resolveQmlType. Change-Id: I8bd9c486294912cc00ce5feb350c3ff79c6aac09 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/compiler')
-rw-r--r--src/qml/compiler/qqmlirbuilder.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp
index b64e637739..339278fbe8 100644
--- a/src/qml/compiler/qqmlirbuilder.cpp
+++ b/src/qml/compiler/qqmlirbuilder.cpp
@@ -1810,6 +1810,7 @@ static QV4::IR::Type resolveQmlType(QQmlEnginePrivate *qmlEngine, QV4::IR::Membe
if (type->isCompositeSingleton()) {
QQmlRefPointer<QQmlTypeData> tdata = qmlEngine->typeLoader.getType(type->singletonInstanceInfo()->url);
Q_ASSERT(tdata);
+ tdata->release(); // Decrease the reference count added from QQmlTypeLoader::getType()
// When a singleton tries to reference itself, it may not be complete yet.
if (tdata->isComplete()) {
initMetaObjectResolver(resolver, qmlEngine->propertyCacheForType(tdata->compiledData()->metaTypeId));