From 4413254ff603fa19f4fa22d4936e69f4a6dbbc2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= Date: Wed, 14 May 2014 12:46:18 +0200 Subject: [PATCH] Micro-optimize QDir::relativeFilePath Use QString::splitRef on platforms with case sensitive paths, to avoid unnecessary allocations. Change-Id: Iff331a5eb67c4cbaf1333e663e77290261c5b013 Reviewed-by: Oswald Buddenhagen --- src/corelib/io/qdir.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index ec7d89fa87b..be15e33fffe 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -760,9 +760,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 dirElts = dir.splitRef(QLatin1Char('/'), QString::SkipEmptyParts); + QVector fileElts = file.splitRef(QLatin1Char('/'), QString::SkipEmptyParts); +#endif int i = 0; while (i < dirElts.size() && i < fileElts.size() && #if defined(Q_OS_WIN)