From 125befb309f5eccd80cbffd815396d35c49c08f2 Mon Sep 17 00:00:00 2001 From: Jian Liang <jianliang79@gmail.com> Date: Sat, 25 Oct 2014 17:15:49 +0800 Subject: [PATCH] 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> --- src/qml/compiler/qqmlirbuilder.cpp | 1 + 1 file changed, 1 insertion(+) 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)); -- GitLab