qmlplugindump: don't crash if a composite type was a registered
authorShawn Rutledge <shawn.rutledge@digia.com>
Wed, 13 Feb 2013 16:42:56 +0000 (17:42 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 18 Feb 2013 16:51:35 +0000 (17:51 +0100)
This doesn't actually result in putting any information about the
composite type into the output, though.

Change-Id: I160702578f0acd22eff98e8afa288b3c9fb20076
Reviewed-by: Alan Alpert <aalpert@rim.com>

tools/qmlplugindump/main.cpp

index b5ee08d..e05c77c 100644 (file)
@@ -184,11 +184,13 @@ QSet<const QMetaObject *> collectReachableMetaObjects(QQmlEngine *engine, const
 
     QHash<QByteArray, QSet<QByteArray> > extensions;
     foreach (const QQmlType *ty, QQmlMetaType::qmlTypes()) {
-        qmlTypesByCppName[ty->metaObject()->className()].insert(ty);
-        if (ty->isExtendedType()) {
-            extensions[ty->typeName()].insert(ty->metaObject()->className());
+        if (!ty->isComposite()) {
+            qmlTypesByCppName[ty->metaObject()->className()].insert(ty);
+            if (ty->isExtendedType())
+                extensions[ty->typeName()].insert(ty->metaObject()->className());
+            collectReachableMetaObjects(ty, &metas);
         }
-        collectReachableMetaObjects(ty, &metas);
+        // TODO actually handle composite types
     }
 
     // Adjust exports of the base object if there are extensions.