From ca220513039fc725eccf45e1bdc5b6436f79eb24 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 4 May 2016 17:39:41 +0200 Subject: [PATCH] QmlJS: Avoid infinite loop on empty list of import paths Change-Id: I1b7bade71226e4181b2643cabb53f934930afc81 Reviewed-by: Marco Benelli Reviewed-by: Thomas Hartmann --- src/libs/qmljs/qmljslink.cpp | 2 +- src/libs/qmljs/qmljsutils.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp index 1d084bf395d..4becf6e011d 100644 --- a/src/libs/qmljs/qmljslink.cpp +++ b/src/libs/qmljs/qmljslink.cpp @@ -378,7 +378,7 @@ Import LinkPrivate::importNonFile(Document::Ptr doc, const ImportInfo &importInf const ComponentVersion version = importInfo.version(); QString libraryPath = modulePath(packageName, version.toString(), importPaths); - bool importFound = importLibrary(doc, libraryPath, &import); + bool importFound = !libraryPath.isEmpty() && importLibrary(doc, libraryPath, &import); // if there are cpp-based types for this package, use them too if (valueOwner->cppQmlTypes().hasModule(packageName)) { diff --git a/src/libs/qmljs/qmljsutils.cpp b/src/libs/qmljs/qmljsutils.cpp index 98deff530ac..a3ebed5081c 100644 --- a/src/libs/qmljs/qmljsutils.cpp +++ b/src/libs/qmljs/qmljsutils.cpp @@ -232,6 +232,8 @@ QString QmlJS::modulePath(const QString &name, const QString &version, const QStringList &importPaths) { Q_ASSERT(maybeModuleVersion(version)); + if (importPaths.isEmpty()) + return QString(); const QStringList parts = name.split(QLatin1Char('.'), QString::SkipEmptyParts); auto mkpath = [] (const QStringList &xs) -> QString { return xs.join(QLatin1Char('/')); };