summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qcollator_win.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2017-02-07 10:19:37 +0100
committerMarc Mutz <marc.mutz@kdab.com>2017-02-07 19:40:10 +0000
commit0c50edbe84914469973a3b10e0170023ccdd66fe (patch)
treea32fb8f572480267c8ba2e6569da3538218e951d /src/corelib/tools/qcollator_win.cpp
parent9aaaa8427d5d9e9141e0b1b02595a6b96f37cb0c (diff)
QCollator: don't pipe bcp47Name() through QString
Give QCollator access to QLocalePrivate::bcp47Name(), to avoid both the latin-1 -> UTF-16 conversion in QLocale::bcp47Name(), as well all as - the replace('-', '_').toLatin1() call in ICU - the toLocal8Bit() call in macOS - the toUtf8() call in Windows implementations of QCollatorPrivate::init(). This is safe, since, according to https://tools.ietf.org/html/bcp47, a BCP47 name only contains US-ASCII (ALPHA used, which is defined by https://tools.ietf.org/html/rfc5234 to be [a-zA-Z] only). Change-Id: Id56befb1b5a7983494d848cdabf7ebeda377cf9f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/tools/qcollator_win.cpp')
-rw-r--r--src/corelib/tools/qcollator_win.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/corelib/tools/qcollator_win.cpp b/src/corelib/tools/qcollator_win.cpp
index fcd8d069eb..44beaeaf75 100644
--- a/src/corelib/tools/qcollator_win.cpp
+++ b/src/corelib/tools/qcollator_win.cpp
@@ -38,6 +38,7 @@
****************************************************************************/
#include "qcollator_p.h"
+#include "qlocale_p.h"
#include "qstringlist.h"
#include "qstring.h"
@@ -61,7 +62,7 @@ void QCollatorPrivate::init()
collator = 0;
#ifndef USE_COMPARESTRINGEX
- localeID = qt_inIsoNametoLCID(locale.bcp47Name().toUtf8().constData());
+ localeID = qt_inIsoNametoLCID(QLocalePrivate::get(locale)->bcp47Name().constData());
#else
localeName = locale.bcp47Name();
#endif