Fix crash when trying to set versioned group properties
authorSimon Hausmann <simon.hausmann@digia.com>
Mon, 26 Aug 2013 13:35:19 +0000 (15:35 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 28 Aug 2013 04:56:24 +0000 (06:56 +0200)
If a property isn't available due to revisioning, we print an error message.
Producing the error message should be done with care of obj->type being -1
to avoid out-of-bounds on the output->types array.

Task-number: QTBUG-33179

Change-Id: I7bd420f2dfa0ca2d616340a68999d58022974435
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
src/qml/qml/qqmlcompiler.cpp

index 7b27a4c..7731c73 100644 (file)
@@ -1781,7 +1781,9 @@ bool QQmlCompiler::buildProperty(QQmlScript::Property *prop,
 
         if (d == 0 && notInRevision) {
             const QList<QQmlTypeData::TypeReference>  &resolvedTypes = unit->resolvedTypes();
-            const QQmlTypeData::TypeReference &type = resolvedTypes.at(obj->type);
+            QQmlTypeData::TypeReference type;
+            if (obj->type != -1)
+                type = resolvedTypes.at(obj->type);
             if (type.type) {
                 COMPILE_EXCEPTION(prop, tr("\"%1.%2\" is not available in %3 %4.%5.").arg(elementName(obj)).arg(prop->name().toString()).arg(type.type->module()).arg(type.majorVersion).arg(type.minorVersion));
             } else {