diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-09-12 10:53:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-13 10:29:22 +0200 |
commit | 4b5a7b15fc6d3650c8e9b7bf619804a0a953eeba (patch) | |
tree | dc0e6952e2e6ee26118bcc14dc1f573fa9216593 /src/qml/qml/qqmlcompileddata.cpp | |
parent | 8c2201e2e51e9a6c09b4f91c4b4fc09b2c82f4af (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.cpp | 8 |
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(); |