diff options
author | Jian Liang <jianliang79@gmail.com> | 2016-06-23 23:17:59 +0800 |
---|---|---|
committer | jian liang <jianliang79@gmail.com> | 2016-06-25 07:25:36 +0000 |
commit | 188b160dd0f9959ea01647e07478254e928e3411 (patch) | |
tree | 303a21937f7a15b658386d01d2f87e377491bcad /src | |
parent | 8d35bf976ea3283ef458dc40d6477013b9064583 (diff) |
Fix QQmlTypeData object leak
Don't forget to drop refcount of QQmlTypeData object in
QQmlType::resolveCompositeBaseType() to prevent leakage.
Change-Id: I079839a3347def1c2ac8f9cc07a52debb885b36e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmlmetatype.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp index c5d11ee3c3..337c3bce82 100644 --- a/src/qml/qml/qqmlmetatype.cpp +++ b/src/qml/qml/qqmlmetatype.cpp @@ -484,8 +484,8 @@ QQmlType *QQmlType::resolveCompositeBaseType(QQmlEnginePrivate *engine) const Q_ASSERT(isComposite()); if (!engine) return 0; - QQmlTypeData *td = engine->typeLoader.getType(sourceUrl()); - if (!td || !td->isComplete()) + QQmlRefPointer<QQmlTypeData> td(engine->typeLoader.getType(sourceUrl()), QQmlRefPointer<QQmlTypeData>::Adopt); + if (td.isNull() || !td->isComplete()) return 0; QQmlCompiledData *cd = td->compiledData(); const QMetaObject *mo = cd->rootPropertyCache->firstCppMetaObject(); |