From 066caebd8ad3a7fc9279aea2e8bbd0ef7912687d Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 26 Dec 2015 23:45:32 +0100 Subject: QTranslator: optimize string handling in find_transformation - Don't repeatedly truncate a (shared) QString, truncate a QStringRef instead, preventing a detach. Change-Id: I1a9cf7fc5bc9ea06279f7e2548f2bd144b8780a3 Reviewed-by: Thiago Macieira Reviewed-by: Olivier Goffart (Woboq GmbH) Reviewed-by: Oswald Buddenhagen --- src/corelib/kernel/qtranslator.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp index 09d8d76271..ce1d4917cb 100644 --- a/src/corelib/kernel/qtranslator.cpp +++ b/src/corelib/kernel/qtranslator.cpp @@ -668,7 +668,8 @@ static QString find_translation(const QLocale & locale, } // start guessing - for (QString localeName : qAsConst(fuzzyLocales)) { + for (const QString &fuzzyLocale : qAsConst(fuzzyLocales)) { + QStringRef localeName(&fuzzyLocale); for (;;) { int rightmost = localeName.lastIndexOf(QLatin1Char('_')); // no truncations? fail -- cgit v1.2.3