From 32006535461d05d48bb8c63d27ed7e08215d7165 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Thu, 31 Mar 2016 13:54:30 +0300 Subject: QLocalePrivate: add overloaded codeToScript() and codeToLanguage() ... for QStringRef and QChar array. Now we can use QStringRef arg or QChar array arg to avoid unnecessary allocations. Also mark these functions as Q_DECL_NOTHROW. Change-Id: Ibe75346d80cc413e303fad886ecb82dbdb89af24 Reviewed-by: Edward Welbourne Reviewed-by: Marc Mutz --- src/corelib/tools/qlocale.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src/corelib/tools/qlocale.cpp') diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 8d64e02814..e5a21dfef4 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -91,9 +91,8 @@ QT_BEGIN_INCLUDE_NAMESPACE #include "qlocale_data_p.h" QT_END_INCLUDE_NAMESPACE -QLocale::Language QLocalePrivate::codeToLanguage(const QString &code) +QLocale::Language QLocalePrivate::codeToLanguage(const QChar *code, int len) Q_DECL_NOTHROW { - int len = code.length(); if (len != 2 && len != 3) return QLocale::C; ushort uc1 = code[0].toLower().unicode(); @@ -134,17 +133,16 @@ QLocale::Language QLocalePrivate::codeToLanguage(const QString &code) return QLocale::C; } -QLocale::Script QLocalePrivate::codeToScript(const QString &code) +QLocale::Script QLocalePrivate::codeToScript(const QChar *code, int len) Q_DECL_NOTHROW { - int len = code.length(); if (len != 4) return QLocale::AnyScript; // script is titlecased in our data - unsigned char c0 = code.at(0).toUpper().toLatin1(); - unsigned char c1 = code.at(1).toLower().toLatin1(); - unsigned char c2 = code.at(2).toLower().toLatin1(); - unsigned char c3 = code.at(3).toLower().toLatin1(); + unsigned char c0 = code[0].toUpper().toLatin1(); + unsigned char c1 = code[1].toLower().toLatin1(); + unsigned char c2 = code[2].toLower().toLatin1(); + unsigned char c3 = code[3].toLower().toLatin1(); const unsigned char *c = script_code_list; for (int i = 0; i < QLocale::LastScript; ++i, c += 4) { -- cgit v1.2.3