From a04a16538555d0db110802d474aa999d316c4a62 Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed <fawzi.mohamed@digia.com> Date: Thu, 16 Jan 2014 11:43:59 +0100 Subject: [PATCH] qml: avoid dumping or reading type info multiple times Change-Id: Id0c52f6a96a5c36893f64cbc96cc7eee300e6afa Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com> --- src/plugins/qmljstools/qmljsplugindumper.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmljstools/qmljsplugindumper.cpp b/src/plugins/qmljstools/qmljsplugindumper.cpp index 01c2d8518ef..71d00708701 100644 --- a/src/plugins/qmljstools/qmljsplugindumper.cpp +++ b/src/plugins/qmljstools/qmljsplugindumper.cpp @@ -171,12 +171,15 @@ void PluginDumper::onLoadPluginTypes(const QString &libraryPath, const QString & // add default qmltypes file if it exists const QLatin1String defaultQmltypesFileName("plugins.qmltypes"); const QString defaultQmltypesPath = makeAbsolute(defaultQmltypesFileName, canonicalLibraryPath); - if (QFile::exists(defaultQmltypesPath)) + if (!plugin.typeInfoPaths.contains(defaultQmltypesPath) && QFile::exists(defaultQmltypesPath)) plugin.typeInfoPaths += defaultQmltypesPath; // add typeinfo files listed in qmldir - foreach (const QmlDirParser::TypeInfo &typeInfo, libraryInfo.typeInfos()) - plugin.typeInfoPaths += makeAbsolute(typeInfo.fileName, canonicalLibraryPath); + foreach (const QmlDirParser::TypeInfo &typeInfo, libraryInfo.typeInfos()) { + QString pathNow = makeAbsolute(typeInfo.fileName, canonicalLibraryPath); + if (!plugin.typeInfoPaths.contains(pathNow) && QFile::exists(pathNow)) + plugin.typeInfoPaths += pathNow; + } // watch plugin libraries foreach (const QmlDirParser::Plugin &plugin, snapshot.libraryInfo(canonicalLibraryPath).plugins()) { -- GitLab