diff options
author | Jian Liang <jianliang79@gmail.com> | 2014-10-25 17:15:49 +0800 |
---|---|---|
committer | jian liang <jianliang79@gmail.com> | 2014-10-27 14:55:55 +0100 |
commit | 125befb309f5eccd80cbffd815396d35c49c08f2 (patch) | |
tree | d48b4bdea6f58cc57f47e961400a66976a4a9ca6 /src/qml/compiler | |
parent | 8f6436f125faae91eb472ddddbbae06dba5da671 (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.cpp | 1 |
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)); |