summaryrefslogtreecommitdiffstats
path: root/src/corelib/text/qstring.h
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-07-01 21:51:06 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-08-04 00:37:35 -0700
commite0eb93d9a2b104ac8d7596c419d1f13dc9db9b1b (patch)
treeba42c1f05f3ec31dd823aab6ef32e8b08bfde204 /src/corelib/text/qstring.h
parent751919d4de2dc8bc7e5898ec8dff64e3ef9eec0f (diff)
QLatin1StringView: delegate operator== to QByteArrayView
It's the same implementation. This also inlines the actual comparison, to allow the compiler to implement the inline memcmp, if it so wishes. operator< could be changed too, but QByteArrayView's makes an out-of- line call to QtPrivate::compareMemory, whereas QLatin1StringView's calls memcmp() directly, which allows the compiler to optimize. Change-Id: I89c4eb48af38408daa7cfffd16fde9f2b0a8590b Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/text/qstring.h')
-rw-r--r--src/corelib/text/qstring.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h
index 3f15001ff8..d426b55e76 100644
--- a/src/corelib/text/qstring.h
+++ b/src/corelib/text/qstring.h
@@ -270,7 +270,7 @@ public:
{ return qTokenize(*this, std::forward<Needle>(needle), flags...); }
friend inline bool operator==(QLatin1StringView s1, QLatin1StringView s2) noexcept
- { return s1.size() == s2.size() && (!s1.size() || !memcmp(s1.latin1(), s2.latin1(), s1.size())); }
+ { return QByteArrayView(s1) == QByteArrayView(s2); }
friend inline bool operator!=(QLatin1StringView s1, QLatin1StringView s2) noexcept
{ return !(s1 == s2); }
friend inline bool operator<(QLatin1StringView s1, QLatin1StringView s2) noexcept