summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-01-12 06:19:41 -0800
committerThiago Macieira <thiago.macieira@intel.com>2022-01-12 13:49:03 -0800
commit6099e96d9eecce785c8540f7cceecb1504ff8396 (patch)
treedb7b8c314ffda6772e4fc5e5fe8b044d434342bb /src/corelib/serialization
parent2cb5e4bd4308f6cc7cee5db0d7f04341403bd917 (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.h1
-rw-r--r--src/corelib/serialization/qjsonparser.cpp5
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());
}
};