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>
This commit is contained in:
parent
284016c7e6
commit
e8e09918c0
@ -756,17 +756,13 @@ QString QDir::relativeFilePath(const QString &fileName) const
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
QString result;
|
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> dirElts = dir.splitRef(QLatin1Char('/'), QString::SkipEmptyParts);
|
||||||
QVector<QStringRef> fileElts = file.splitRef(QLatin1Char('/'), QString::SkipEmptyParts);
|
QVector<QStringRef> fileElts = file.splitRef(QLatin1Char('/'), QString::SkipEmptyParts);
|
||||||
#endif
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < dirElts.size() && i < fileElts.size() &&
|
while (i < dirElts.size() && i < fileElts.size() &&
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
dirElts.at(i).toLower() == fileElts.at(i).toLower())
|
dirElts.at(i).compare(fileElts.at(i), Qt::CaseInsensitive) == 0)
|
||||||
#else
|
#else
|
||||||
dirElts.at(i) == fileElts.at(i))
|
dirElts.at(i) == fileElts.at(i))
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user