diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-06-23 13:20:23 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-02 16:32:43 +0000 |
commit | 49a11e882059ee1729f776722e085dd21d378c36 (patch) | |
tree | 1b0fe9a471766d97d03602502acc57c00df93b36 /tools | |
parent | 97165444ac6954766d53c3eb62eb1614644c7264 (diff) |
Use QQmlType by value
QQmlType is now refcounted, and we need to use it by
value, to control it's lifetime properly. This is
required, so we can clean up the QQmlMetaTypeData
cache on engine destruction and with trimComponentCache()
Task-number: QTBUG-61536
Change-Id: If86391c86ea20a646ded7c9925d8f743f628fb91
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qmlplugindump/main.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp index dd7ae36c5d..911ef9e9a4 100644 --- a/tools/qmlplugindump/main.cpp +++ b/tools/qmlplugindump/main.cpp @@ -144,11 +144,11 @@ void collectReachableMetaObjects(QObject *object, QSet<const QMetaObject *> *met } } -void collectReachableMetaObjects(QQmlEnginePrivate *engine, const QQmlType *ty, QSet<const QMetaObject *> *metas) +void collectReachableMetaObjects(QQmlEnginePrivate *engine, const QQmlType &ty, QSet<const QMetaObject *> *metas) { - collectReachableMetaObjects(ty->metaObject(), metas, ty->isExtendedType()); - if (ty->attachedPropertiesType(engine)) - collectReachableMetaObjects(ty->attachedPropertiesType(engine), metas); + collectReachableMetaObjects(ty.metaObject(), metas, ty.isExtendedType()); + if (ty.attachedPropertiesType(engine)) + collectReachableMetaObjects(ty.attachedPropertiesType(engine), metas); } /* We want to add the MetaObject for 'Qt' to the list, this is a @@ -216,7 +216,7 @@ void collectReachableMetaObjectsWithoutQmlName(QQmlEnginePrivate *engine, QSet<c for (const QQmlType *ty : qmlAllTypes) { if ( ! metas.contains(ty->metaObject()) ) { if (!ty->isComposite()) { - collectReachableMetaObjects(engine, ty, &metas); + collectReachableMetaObjects(engine, *ty, &metas); } else { qmlTypesByCompositeName[ty->elementName()].insert(ty); } @@ -243,7 +243,7 @@ QSet<const QMetaObject *> collectReachableMetaObjects(QQmlEngine *engine, qmlTypesByCppName[ty->metaObject()->className()].insert(ty); if (ty->isExtendedType()) extensions[ty->typeName()].insert(ty->metaObject()->className()); - collectReachableMetaObjects(QQmlEnginePrivate::get(engine), ty, &metas); + collectReachableMetaObjects(QQmlEnginePrivate::get(engine), *ty, &metas); } else { qmlTypesByCompositeName[ty->elementName()].insert(ty); } @@ -1226,16 +1226,16 @@ int main(int argc, char *argv[]) } else { // find a valid QtQuick import QByteArray importCode; - QQmlType *qtObjectType = QQmlMetaType::qmlType(&QObject::staticMetaObject); - if (!qtObjectType) { + QQmlType qtObjectType = QQmlMetaType::qmlType(&QObject::staticMetaObject); + if (!qtObjectType.isValid()) { std::cerr << "Could not find QtObject type" << std::endl; importCode = qtQmlImportString.toUtf8(); } else { - QString module = qtObjectType->qmlTypeName(); + QString module = qtObjectType.qmlTypeName(); module = module.mid(0, module.lastIndexOf(QLatin1Char('/'))); importCode = QString("import %1 %2.%3").arg(module, - QString::number(qtObjectType->majorVersion()), - QString::number(qtObjectType->minorVersion())).toUtf8(); + QString::number(qtObjectType.majorVersion()), + QString::number(qtObjectType.minorVersion())).toUtf8(); } // avoid importing dependencies? for (const QString &moduleToImport : qAsConst(dependencies)) { |