summaryrefslogtreecommitdiffstats
path: root/src/corelib/time
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2021-06-02 08:45:10 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2021-06-12 02:19:46 +0200
commit77d62727d0c1c638b904ada8fc720de2a4d60a6e (patch)
tree54f9fc406f10c53ec99809eb9f545940bbec35bf /src/corelib/time
parent523ee5577a3fb1801dc765511c2c76753c10a72e (diff)
QTimeZonePrivate::territory: use QStringTokenizer
A follow-up to 6ec3321875b9fb2f72cc875ba191aa8123e7d5a5 where the function was optimized using a hand-rolled lazy-split on a QBAView. Now that QLatin1String::indexOf(QLatin1String) has been optimized we can use QStringTokenizer instead. Change-Id: I30b15d309e7c364c0a4dafe31651b39ea14db7e5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/corelib/time')
-rw-r--r--src/corelib/time/qtimezoneprivate.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/corelib/time/qtimezoneprivate.cpp b/src/corelib/time/qtimezoneprivate.cpp
index 2e2079255d..f71e489224 100644
--- a/src/corelib/time/qtimezoneprivate.cpp
+++ b/src/corelib/time/qtimezoneprivate.cpp
@@ -177,12 +177,10 @@ QLocale::Territory QTimeZonePrivate::territory() const
for (int i = 0; i < zoneDataTableSize; ++i) {
const QZoneData *data = zoneData(i);
QByteArrayView idView = ianaIdView(data);
- while (!idView.isEmpty()) {
- qsizetype index = idView.indexOf(' ');
- QByteArrayView next = index == -1 ? idView : idView.first(index);
- if (next == m_id)
- return (QLocale::Territory)data->territory;
- idView = index == -1 ? QByteArrayView() : idView.sliced(index + 1);
+ QLatin1String view(idView.data(), idView.size());
+ for (QLatin1String token : view.tokenize(QLatin1String(" "))) {
+ if (token == QLatin1String(m_id.data(), m_id.size()))
+ return QLocale::Territory(data->territory);
}
}
return QLocale::AnyTerritory;