diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-03-30 17:18:24 +0300 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com> | 2016-04-05 07:12:50 +0000 |
commit | e8e09918c01f14e9d8a7019b16ab3cef9bc7f8cd (patch) | |
tree | 151332daa2a26619548948ff63d930654c2f8333 /src/corelib/io | |
parent | 284016c7e61ded0e3145b6f3e96748ddc1853051 (diff) |
QDir: use QString::splitRef on all platforms
... to avoid unnecessary allocations with
both case sensitive and case insensitive paths.
Optimize 4413254ff603fa19f4fa22d4936e69f4a6dbbc2b
Change-Id: I4288831d641f7a0ee67f2efd2f5d4f023df0d39c
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src/corelib/io')
-rw-r--r-- | src/corelib/io/qdir.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 2c2bdd579e..d0527282b5 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -756,17 +756,13 @@ QString QDir::relativeFilePath(const QString &fileName) const #endif QString result; -#if defined(Q_OS_WIN) - QStringList dirElts = dir.split(QLatin1Char('/'), QString::SkipEmptyParts); - QStringList fileElts = file.split(QLatin1Char('/'), QString::SkipEmptyParts); -#else QVector<QStringRef> dirElts = dir.splitRef(QLatin1Char('/'), QString::SkipEmptyParts); QVector<QStringRef> fileElts = file.splitRef(QLatin1Char('/'), QString::SkipEmptyParts); -#endif + int i = 0; while (i < dirElts.size() && i < fileElts.size() && #if defined(Q_OS_WIN) - dirElts.at(i).toLower() == fileElts.at(i).toLower()) + dirElts.at(i).compare(fileElts.at(i), Qt::CaseInsensitive) == 0) #else dirElts.at(i) == fileElts.at(i)) #endif |