aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypeloader.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-09-18 16:02:05 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-20 14:27:14 +0200
commit5f6ae3598e30ed64697ac24cc09d609830f66eb2 (patch)
treecbe450b19b3772449670daccecce2cc0a7ca3eed /src/qml/qml/qqmltypeloader.cpp
parent8d441936d2e8ab8c39a66831a658c192b80ca597 (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.cpp15
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();
+ }
}
{