diff options
Diffstat (limited to 'tools/qmlcachegen/generateloader.cpp')
-rw-r--r-- | tools/qmlcachegen/generateloader.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/qmlcachegen/generateloader.cpp b/tools/qmlcachegen/generateloader.cpp index 5b8fc34455..4fbbb27afb 100644 --- a/tools/qmlcachegen/generateloader.cpp +++ b/tools/qmlcachegen/generateloader.cpp @@ -365,6 +365,7 @@ bool generateLoader(const QStringList &compiledFiles, const QStringList &sortedR stream << "struct Registry {\n"; stream << " Registry();\n"; + stream << " ~Registry();\n"; stream << " QHash<QString, const QQmlPrivate::CachedQmlUnit*> resourcePathToCachedUnit;\n"; stream << " static const QQmlPrivate::CachedQmlUnit *lookupCachedUnit(const QUrl &url);\n"; stream << "};\n\n"; @@ -387,7 +388,11 @@ bool generateLoader(const QStringList &compiledFiles, const QStringList &sortedR if (!resourceRegisterCall.isEmpty()) stream << resourceRegisterCall; - stream << "}\n"; + stream << "}\n\n"; + stream << "Registry::~Registry() {\n"; + stream << " QQmlPrivate::qmlunregister(QQmlPrivate::QmlUnitCacheHookRegistration, quintptr(&lookupCachedUnit));\n"; + stream << "}\n\n"; + stream << "const QQmlPrivate::CachedQmlUnit *Registry::lookupCachedUnit(const QUrl &url) {\n"; stream << " if (url.scheme() != QLatin1String(\"qrc\"))\n"; stream << " return nullptr;\n"; |