diff options
Diffstat (limited to 'src/qml/qml/qqmlcompileddata.cpp')
-rw-r--r-- | src/qml/qml/qqmlcompileddata.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/qml/qml/qqmlcompileddata.cpp b/src/qml/qml/qqmlcompileddata.cpp index 76bf24fe6b..cc8fcdb6ba 100644 --- a/src/qml/qml/qqmlcompileddata.cpp +++ b/src/qml/qml/qqmlcompileddata.cpp @@ -117,13 +117,15 @@ QQmlCompiledData::~QQmlCompiledData() types.at(ii).typePropertyCache->release(); } - for (QHash<int, TypeReference>::Iterator resolvedType = resolvedTypes.begin(), end = resolvedTypes.end(); + 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(); + if ((*resolvedType)->component) + (*resolvedType)->component->release(); + if ((*resolvedType)->typePropertyCache) + (*resolvedType)->typePropertyCache->release(); } + qDeleteAll(resolvedTypes); + resolvedTypes.clear(); for (int ii = 0; ii < propertyCaches.count(); ++ii) if (propertyCaches.at(ii)) |