From ba0323974914166150a40878b14405659a7a5329 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 8 Sep 2010 15:10:35 +0200 Subject: [PATCH] Concate strings instead of using the QDir API to speed up the linking phase. Reviewed-by: Christian Kamm --- src/libs/qmljs/qmljslink.cpp | 9 ++++----- src/plugins/qmljseditor/qmljsmodelmanager.cpp | 5 +++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp index 71ed751a9e3..5cab864e7e0 100644 --- a/src/libs/qmljs/qmljslink.cpp +++ b/src/libs/qmljs/qmljslink.cpp @@ -295,11 +295,10 @@ void Link::importNonFile(Interpreter::ObjectValue *typeEnv, Document::Ptr doc, A // check the filesystem const QString packagePath = Bind::toString(import->importUri, QDir::separator()); foreach (const QString &importPath, _importPaths) { - QDir dir(importPath); - if (!dir.cd(packagePath)) - continue; + QString libraryPath = importPath; + libraryPath += QDir::separator(); + libraryPath += packagePath; - const QString &libraryPath = dir.path(); const LibraryInfo libraryInfo = _snapshot.libraryInfo(libraryPath); if (!libraryInfo.isValid()) continue; @@ -326,7 +325,7 @@ void Link::importNonFile(Interpreter::ObjectValue *typeEnv, Document::Ptr doc, A continue; importedTypes.insert(component.typeName); - if (Document::Ptr importedDoc = _snapshot.document(dir.filePath(component.fileName))) { + if (Document::Ptr importedDoc = _snapshot.document(libraryPath + QDir::separator() + component.fileName)) { if (importedDoc->bind()->rootObjectValue()) namespaceObject->setProperty(component.typeName, importedDoc->bind()->rootObjectValue()); } diff --git a/src/plugins/qmljseditor/qmljsmodelmanager.cpp b/src/plugins/qmljseditor/qmljsmodelmanager.cpp index b6b3ffeb9d9..479d5b98f5e 100644 --- a/src/plugins/qmljseditor/qmljsmodelmanager.cpp +++ b/src/plugins/qmljseditor/qmljsmodelmanager.cpp @@ -466,7 +466,8 @@ void ModelManager::loadPluginTypes(const QString &libraryPath, const QString &im void ModelManager::onLoadPluginTypes(const QString &libraryPath, const QString &importPath, const QString &importUri) { - if (m_runningQmldumps.values().contains(libraryPath)) + const QString canonicalLibraryPath = QDir::cleanPath(libraryPath); + if (m_runningQmldumps.values().contains(canonicalLibraryPath)) return; static QString qmldumpPath; @@ -500,7 +501,7 @@ void ModelManager::onLoadPluginTypes(const QString &libraryPath, const QString & args << importPath; args << importUri; process->start(qmldumpPath, args); - m_runningQmldumps.insert(process, libraryPath); + m_runningQmldumps.insert(process, canonicalLibraryPath); } void ModelManager::updateImportPaths()