summaryrefslogtreecommitdiffstats
path: root/src/corelib/text/qlocale.cpp
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2020-10-08 18:30:38 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2020-10-12 16:54:01 +0200
commite2628b5f57887f7ec03b5f78b6949d49e525257a (patch)
tree87f305d693eeab018d322153aa2dd2514befebce /src/corelib/text/qlocale.cpp
parent57455543c5445f7710f7bbd8bfc2ed6e5b9e19bb (diff)
Minor refinements in QLocale
A loop's condition could be simplified. Use std::size() rather than sizeof()/sizeof(). Clarify two comments. Change-Id: Ideba2e0e1ba9c9656297aefb0a375cc122ee8626 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/text/qlocale.cpp')
-rw-r--r--src/corelib/text/qlocale.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/corelib/text/qlocale.cpp b/src/corelib/text/qlocale.cpp
index d4d588eef2..8b4e60f2ca 100644
--- a/src/corelib/text/qlocale.cpp
+++ b/src/corelib/text/qlocale.cpp
@@ -216,9 +216,8 @@ QLatin1String QLocalePrivate::countryToCode(QLocale::Country country)
static bool addLikelySubtags(QLocaleId &localeId)
{
// ### optimize with bsearch
- const int likely_subtags_count = sizeof(likely_subtags) / sizeof(likely_subtags[0]);
const QLocaleId *p = likely_subtags;
- const QLocaleId *const e = p + likely_subtags_count;
+ const QLocaleId *const e = p + std::size(likely_subtags);
for ( ; p < e; p += 2) {
if (localeId == p[0]) {
localeId = p[1];
@@ -364,14 +363,12 @@ QByteArray QLocalePrivate::rawName(char separator) const
static const QLocaleData *findLocaleDataById(const QLocaleId &lid)
{
QLocaleId localeId = lid.withLikelySubtagsAdded();
-
const uint idx = locale_index[localeId.language_id];
-
- const QLocaleData *data = locale_data + idx;
-
if (idx == 0) // default language has no associated script or country
- return data;
+ return locale_data;
+ Q_ASSERT(localeId.language_id);
+ const QLocaleData *data = locale_data + idx;
Q_ASSERT(data->m_language_id == localeId.language_id);
if (localeId.script_id == QLocale::AnyScript && localeId.country_id == QLocale::AnyCountry)
@@ -382,13 +379,13 @@ static const QLocaleData *findLocaleDataById(const QLocaleId &lid)
if (data->m_country_id == localeId.country_id)
return data;
++data;
- } while (data->m_language_id && data->m_language_id == localeId.language_id);
+ } while (data->m_language_id == localeId.language_id);
} else if (localeId.country_id == QLocale::AnyCountry) {
do {
if (data->m_script_id == localeId.script_id)
return data;
++data;
- } while (data->m_language_id && data->m_language_id == localeId.language_id);
+ } while (data->m_language_id == localeId.language_id);
} else {
do {
if (data->m_script_id == localeId.script_id
@@ -396,7 +393,7 @@ static const QLocaleData *findLocaleDataById(const QLocaleId &lid)
return data;
}
++data;
- } while (data->m_language_id && data->m_language_id == localeId.language_id);
+ } while (data->m_language_id == localeId.language_id);
}
return nullptr;
@@ -423,7 +420,7 @@ const QLocaleData *QLocaleData::findLocaleData(QLocale::Language language, QLoca
tried.push_back(localeId);
}
- // No match; try again with likely country
+ // No match; try again with likely country for language_script
if (country != QLocale::AnyCountry
&& (language != QLocale::AnyLanguage || script != QLocale::AnyScript)) {
localeId = QLocaleId { language, script, QLocale::AnyCountry };
@@ -442,7 +439,7 @@ const QLocaleData *QLocaleData::findLocaleData(QLocale::Language language, QLoca
}
}
- // No match; try again with likely script
+ // No match; try again with likely script for language_region
if (script != QLocale::AnyScript
&& (language != QLocale::AnyLanguage || country != QLocale::AnyCountry)) {
localeId = QLocaleId { language, QLocale::AnyScript, country };