diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2020-10-08 18:30:38 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2020-10-12 16:54:01 +0200 |
commit | e2628b5f57887f7ec03b5f78b6949d49e525257a (patch) | |
tree | 87f305d693eeab018d322153aa2dd2514befebce | |
parent | 57455543c5445f7710f7bbd8bfc2ed6e5b9e19bb (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>
-rw-r--r-- | src/corelib/text/qlocale.cpp | 21 |
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 }; |