diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-09-18 16:02:05 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-20 14:27:14 +0200 |
commit | 5f6ae3598e30ed64697ac24cc09d609830f66eb2 (patch) | |
tree | cbe450b19b3772449670daccecce2cc0a7ca3eed /src/qml/qml/qqmltypeloader.cpp | |
parent | 8d441936d2e8ab8c39a66831a658c192b80ca597 (diff) |
[new compiler] Initial support for composite types
Change-Id: I01030814a978d8a52a086b0389fe62af42a4bbba
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmltypeloader.cpp')
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 7a54cab0f2..6a0b90c5aa 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2179,8 +2179,13 @@ void QQmlTypeData::compile() for (QHash<int, TypeReference>::ConstIterator resolvedType = m_resolvedTypes.constBegin(), end = m_resolvedTypes.constEnd(); resolvedType != end; ++resolvedType) { QQmlCompiledData::TypeReference ref; - ref.type = resolvedType->type; - Q_ASSERT(ref.type); + if (resolvedType->typeData) { + ref.component = resolvedType->typeData->compiledData(); + ref.component->addref(); + } else { + ref.type = resolvedType->type; + Q_ASSERT(ref.type); + } m_compiledData->resolvedTypes.insert(resolvedType.key(), ref); } @@ -2248,6 +2253,12 @@ void QQmlTypeData::compile() if (propertyCache) propertyCache->addref(); m_compiledData->propertyCaches << propertyCache; + + if (i == qmlUnit->indexOfRootObject) { + Q_ASSERT(propertyCache); + m_compiledData->rootPropertyCache = propertyCache; + propertyCache->addref(); + } } { |