diff options
Diffstat (limited to 'src/qml/qml/qqmltypedata.cpp')
-rw-r--r-- | src/qml/qml/qqmltypedata.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/qml/qml/qqmltypedata.cpp b/src/qml/qml/qqmltypedata.cpp index 89bccc0c39..51564e2429 100644 --- a/src/qml/qml/qqmltypedata.cpp +++ b/src/qml/qml/qqmltypedata.cpp @@ -252,7 +252,10 @@ void QQmlTypeData::createTypeAndPropertyCaches( pendingGroupPropertyBindings.resolveMissingPropertyCaches(engine, &m_compiledData->propertyCaches); } -static bool addTypeReferenceChecksumsToHash(const QList<QQmlTypeData::TypeReference> &typeRefs, QCryptographicHash *hash, QQmlEngine *engine) +static bool addTypeReferenceChecksumsToHash( + const QList<QQmlTypeData::TypeReference> &typeRefs, + QCryptographicHash *hash, QQmlEngine *engine, + QHash<quintptr, QByteArray> *checksums) { for (const auto &typeRef: typeRefs) { if (typeRef.typeData) { @@ -261,7 +264,7 @@ static bool addTypeReferenceChecksumsToHash(const QList<QQmlTypeData::TypeRefere } else if (typeRef.type.isValid()) { const auto propertyCache = QQmlEnginePrivate::get(engine)->cache(typeRef.type.metaObject()); bool ok = false; - hash->addData(propertyCache->checksum(&ok)); + hash->addData(propertyCache->checksum(checksums, &ok)); if (!ok) return false; } @@ -421,8 +424,9 @@ void QQmlTypeData::done() const auto dependencyHasher = [engine, &resolvedTypeCache, this]() { QCryptographicHash hash(QCryptographicHash::Md5); - return (resolvedTypeCache.addToHash(&hash, engine) - && ::addTypeReferenceChecksumsToHash(m_compositeSingletons, &hash, engine)) + return (resolvedTypeCache.addToHash(&hash, engine, typeLoader()->checksumCache()) + && ::addTypeReferenceChecksumsToHash(m_compositeSingletons, &hash, engine, + typeLoader()->checksumCache())) ? hash.result() : QByteArray(); }; |