aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlcompileddata.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-09-12 10:53:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-13 10:29:22 +0200
commit4b5a7b15fc6d3650c8e9b7bf619804a0a953eeba (patch)
treedc0e6952e2e6ee26118bcc14dc1f573fa9216593 /src/qml/qml/qqmlcompileddata.cpp
parent8c2201e2e51e9a6c09b4f91c4b4fc09b2c82f4af (diff)
[new compiler] Implement proper type resolution
Collect all references to unknown types after parsing, re-use the existing code in QQmlTypeLoader to resolve them and finally use the resolved references map in the QQmlObjectCreator instead of the type name cache directly. Change-Id: I8b83af4f8852e79c33985457081c024358bb9622 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlcompileddata.cpp')
-rw-r--r--src/qml/qml/qqmlcompileddata.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlcompileddata.cpp b/src/qml/qml/qqmlcompileddata.cpp
index a2e323a129..f9e36d59d2 100644
--- a/src/qml/qml/qqmlcompileddata.cpp
+++ b/src/qml/qml/qqmlcompileddata.cpp
@@ -116,6 +116,14 @@ QQmlCompiledData::~QQmlCompiledData()
types.at(ii).typePropertyCache->release();
}
+ for (QHash<int, TypeReference>::Iterator resolvedType = resolvedTypes.begin(), end = resolvedTypes.end();
+ resolvedType != end; ++resolvedType) {
+ if (resolvedType->component)
+ resolvedType->component->release();
+ if (resolvedType->typePropertyCache)
+ resolvedType->typePropertyCache->release();
+ }
+
for (int ii = 0; ii < propertyCaches.count(); ++ii)
propertyCaches.at(ii)->release();