diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2022-01-12 06:19:41 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-01-12 13:49:03 -0800 |
commit | 6099e96d9eecce785c8540f7cceecb1504ff8396 (patch) | |
tree | db7b8c314ffda6772e4fc5e5fe8b044d434342bb /src/corelib/serialization | |
parent | 2cb5e4bd4308f6cc7cee5db0d7f04341403bd917 (diff) |
QJsonObject: use the UTF-8 string comparator in sorting
No change, the two functions are identical for case-sensitive
comparison. But this allows us to remove the comment that explained why
we were abusing the Latin1 comparator.
Change-Id: I0e5f6bec596a4a78bd3bfffd16c98bbcac6c9dc9
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/corelib/serialization')
-rw-r--r-- | src/corelib/serialization/qcborvalue_p.h | 1 | ||||
-rw-r--r-- | src/corelib/serialization/qjsonparser.cpp | 5 |
2 files changed, 2 insertions, 4 deletions
diff --git a/src/corelib/serialization/qcborvalue_p.h b/src/corelib/serialization/qcborvalue_p.h index 5c8f244ad8..e23b9fccf9 100644 --- a/src/corelib/serialization/qcborvalue_p.h +++ b/src/corelib/serialization/qcborvalue_p.h @@ -116,6 +116,7 @@ struct ByteData QByteArray asByteArrayView() const { return QByteArray::fromRawData(byte(), len); } QLatin1String asLatin1() const { return QLatin1String(byte(), len); } + QUtf8StringView asUtf8StringView() const { return QUtf8StringView(byte(), len); } QStringView asStringView() const{ return QStringView(utf16(), len / 2); } QString asQStringRaw() const { return QString::fromRawData(utf16(), len / 2); } }; diff --git a/src/corelib/serialization/qjsonparser.cpp b/src/corelib/serialization/qjsonparser.cpp index 5dc2a30915..2514319e0e 100644 --- a/src/corelib/serialization/qjsonparser.cpp +++ b/src/corelib/serialization/qjsonparser.cpp @@ -413,10 +413,7 @@ static void sortContainer(QCborContainerPrivate *container) if (bKey.flags & QtCbor::Element::StringIsUtf16) return QCborContainerPrivate::compareUtf8(aData, bData->asStringView()); - // We're missing an explicit UTF-8 to UTF-8 comparison in Qt, but - // UTF-8 to UTF-8 comparison retains simple byte ordering, so we'll - // abuse the Latin-1 comparison function. - return QtPrivate::compareStrings(aData->asLatin1(), bData->asLatin1()); + return QtPrivate::compareStrings(aData->asUtf8StringView(), bData->asUtf8StringView()); } }; |