diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-11-27 10:58:56 +0100 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-11-27 10:58:56 +0100 |
commit | 9df70b0304fa44d2f1b1504d7e58d718eab4343a (patch) | |
tree | 95a7b207a39c2b44bd4e80bcc1ea3d36bedd9a99 /src/qml/qml/qqmlobjectcreator.cpp | |
parent | 648d4ae6a3591e916f175e32c12a2ea4f8edb6a9 (diff) | |
parent | 900e3d4ad5f2bc4994ddf164c15c641f85630b81 (diff) |
Merge branch 'stable' into dev
Conflicts:
.qmake.conf
Change-Id: I10d4f9e993d23750a6e8ddc1291b79e47fc83c64
Diffstat (limited to 'src/qml/qml/qqmlobjectcreator.cpp')
-rw-r--r-- | src/qml/qml/qqmlobjectcreator.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp index 56776dcb82..3798129e8b 100644 --- a/src/qml/qml/qqmlobjectcreator.cpp +++ b/src/qml/qml/qqmlobjectcreator.cpp @@ -525,8 +525,14 @@ QObject *QmlObjectCreator::create(int subComponentIndex, QObject *parent) context->setIdPropertyData(mapping); if (subComponentIndex == -1) { - foreach (QQmlScriptData *script, compiledData->scripts) - context->importedScripts << script->scriptValueForContext(context); + QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine); + QV4::Scope scope(v4); + QV4::ScopedObject scripts(scope, v4->newArrayObject(compiledData->scripts.count())); + for (int i = 0; i < compiledData->scripts.count(); ++i) { + QQmlScriptData *s = compiledData->scripts.at(i); + scripts->putIndexed(i, s->scriptValueForContext(context)); + } + context->importedScripts = scripts; } else if (parentContext) { context->importedScripts = parentContext->importedScripts; } @@ -1004,8 +1010,7 @@ void QmlObjectCreator::setupBindings() bool QmlObjectCreator::setPropertyValue(QQmlPropertyData *property, int bindingIndex, const QV4::CompiledData::Binding *binding) { if (binding->type == QV4::CompiledData::Binding::Type_AttachedProperty) { - const QV4::CompiledData::Object *obj = qmlUnit->objectAt(binding->value.objectIndex); - Q_ASSERT(stringAt(obj->inheritedTypeNameIndex).isEmpty()); + Q_ASSERT(stringAt(qmlUnit->objectAt(binding->value.objectIndex)->inheritedTypeNameIndex).isEmpty()); QQmlType *attachedType = resolvedTypes.value(binding->propertyNameIndex).type; const int id = attachedType->attachedPropertiesId(); QObject *qmlObject = qmlAttachedPropertiesObjectById(id, _qobject); @@ -1260,7 +1265,7 @@ QObject *QmlObjectCreator::createInstance(int index, QObject *parent) } QQmlData *ddata = QQmlData::get(instance, /*create*/true); - if (index == qmlUnit->indexOfRootObject) { + if (static_cast<quint32>(index) == qmlUnit->indexOfRootObject) { if (ddata->context) { Q_ASSERT(ddata->context != context); Q_ASSERT(ddata->outerContext); @@ -1427,7 +1432,7 @@ bool QQmlComponentAndAliasResolver::resolve() // when someProperty _is_ a QQmlComponent. In that case the Item {} // should be implicitly surrounded by Component {} - for (int i = 0; i < qmlUnit->nObjects; ++i) { + for (quint32 i = 0; i < qmlUnit->nObjects; ++i) { const QV4::CompiledData::Object *obj = qmlUnit->objectAt(i); if (stringAt(obj->inheritedTypeNameIndex).isEmpty()) continue; @@ -1511,14 +1516,14 @@ bool QQmlComponentAndAliasResolver::collectIdsAndAliases(int objectIndex) } const QV4::CompiledData::Property *property = obj->propertyTable(); - for (int i = 0; i < obj->nProperties; ++i, ++property) + for (quint32 i = 0; i < obj->nProperties; ++i, ++property) if (property->type == QV4::CompiledData::Property::Alias) { _objectsWithAliases.append(objectIndex); break; } const QV4::CompiledData::Binding *binding = obj->bindingTable(); - for (int i = 0; i < obj->nBindings; ++i, ++binding) { + for (quint32 i = 0; i < obj->nBindings; ++i, ++binding) { if (binding->type != QV4::CompiledData::Binding::Type_Object && binding->type != QV4::CompiledData::Binding::Type_AttachedProperty && binding->type != QV4::CompiledData::Binding::Type_GroupProperty) @@ -1694,7 +1699,7 @@ QQmlPropertyValidator::QQmlPropertyValidator(const QUrl &url, const QV4::Compile bool QQmlPropertyValidator::validate() { - for (int i = 0; i < qmlUnit->nObjects; ++i) { + for (quint32 i = 0; i < qmlUnit->nObjects; ++i) { const QV4::CompiledData::Object *obj = qmlUnit->objectAt(i); if (stringAt(obj->inheritedTypeNameIndex).isEmpty()) continue; @@ -1718,7 +1723,7 @@ bool QQmlPropertyValidator::validateObject(const QV4::CompiledData::Object *obj, QQmlPropertyData *defaultProperty = propertyCache->defaultProperty(); const QV4::CompiledData::Binding *binding = obj->bindingTable(); - for (int i = 0; i < obj->nBindings; ++i, ++binding) { + for (quint32 i = 0; i < obj->nBindings; ++i, ++binding) { if (binding->type == QV4::CompiledData::Binding::Type_AttachedProperty || binding->type == QV4::CompiledData::Binding::Type_GroupProperty) continue; @@ -1754,4 +1759,6 @@ bool QQmlPropertyValidator::validateObject(const QV4::CompiledData::Object *obj, } } } + + return true; } |