diff options
author | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-05-31 20:04:31 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-19 17:15:16 +0200 |
commit | 547b7ed29ce74c164d75fec7bc80af2919d99f56 (patch) | |
tree | bbafd701bef576005b56eb728e2c77a21ee97341 /qmake/library | |
parent | 4b600bd3c13522659bf1a708d12befe57da994a2 (diff) |
minor optimization: don't concatenate strings needlessly
Change-Id: Iddec1a818ff9f3ad8b12491100883e433e4b8246
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/12652c20711fd29dcba62b8d5ba71c077d8bd06c)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'qmake/library')
-rw-r--r-- | qmake/library/ioutils.cpp | 5 | ||||
-rw-r--r-- | qmake/library/ioutils.h | 1 | ||||
-rw-r--r-- | qmake/library/qmakeevaluator.cpp | 3 |
3 files changed, 8 insertions, 1 deletions
diff --git a/qmake/library/ioutils.cpp b/qmake/library/ioutils.cpp index 3c2801594a..cc19aa5c42 100644 --- a/qmake/library/ioutils.cpp +++ b/qmake/library/ioutils.cpp @@ -88,6 +88,11 @@ bool IoUtils::isRelativePath(const QString &path) return true; } +QStringRef IoUtils::pathName(const QString &fileName) +{ + return fileName.leftRef(fileName.lastIndexOf(QLatin1Char('/')) + 1); +} + QStringRef IoUtils::fileName(const QString &fileName) { return fileName.midRef(fileName.lastIndexOf(QLatin1Char('/')) + 1); diff --git a/qmake/library/ioutils.h b/qmake/library/ioutils.h index 160e879fce..d69725fa27 100644 --- a/qmake/library/ioutils.h +++ b/qmake/library/ioutils.h @@ -64,6 +64,7 @@ public: static bool exists(const QString &fileName) { return fileType(fileName) != FileNotFound; } static bool isRelativePath(const QString &fileName); static bool isAbsolutePath(const QString &fileName) { return !isRelativePath(fileName); } + static QStringRef pathName(const QString &fileName); // Requires normalized path static QStringRef fileName(const QString &fileName); // Requires normalized path static QString resolvePath(const QString &baseDir, const QString &fileName); static QString shellQuoteUnix(const QString &arg); diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp index 3efebda8c2..85e08095a5 100644 --- a/qmake/library/qmakeevaluator.cpp +++ b/qmake/library/qmakeevaluator.cpp @@ -1866,8 +1866,9 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFeatureFile( int start_root = 0; QString currFn = currentFileName(); if (IoUtils::fileName(currFn) == IoUtils::fileName(fn)) { + QStringRef currPath = IoUtils::pathName(currFn); for (int root = 0; root < m_featureRoots.size(); ++root) - if (currFn == m_featureRoots.at(root) + fn) { + if (currPath == m_featureRoots.at(root)) { start_root = root + 1; break; } |