QDataStream: Turn QDataStreamSizes enum into static contexpr quint32
The special sizes NullCode and ExtendedSize does not need to be part of an enum. Turning them into constants removes the need for some casts. Task-number: QTBUG-119952 Change-Id: Ie7835c52f4642ab907b91f0eceac2ea7650e81da Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit fb81373313c4d1834437351aeb5df4a44303b93c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
3d18b218dd
commit
8dd7aba7fd
@ -15,6 +15,9 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
constexpr quint32 QDataStream::NullCode;
|
||||
constexpr quint32 QDataStream::ExtendedSize;
|
||||
|
||||
/*!
|
||||
\class QDataStream
|
||||
\inmodule QtCore
|
||||
|
@ -215,7 +215,8 @@ private:
|
||||
qint64 readBlock(char *data, qint64 len);
|
||||
static inline qint64 readQSizeType(QDataStream &s);
|
||||
static inline bool writeQSizeType(QDataStream &s, qint64 value);
|
||||
enum class QDataStreamSizes : quint32 { NullCode = 0xffffffffu, ExtendedSize = 0xfffffffeu };
|
||||
static constexpr quint32 NullCode = 0xffffffffu;
|
||||
static constexpr quint32 ExtendedSize = 0xfffffffeu;
|
||||
|
||||
friend class QtPrivate::StreamStateSaver;
|
||||
Q_CORE_EXPORT friend QDataStream &operator<<(QDataStream &out, const QString &str);
|
||||
@ -421,9 +422,9 @@ qint64 QDataStream::readQSizeType(QDataStream &s)
|
||||
{
|
||||
quint32 first;
|
||||
s >> first;
|
||||
if (first == quint32(QDataStreamSizes::NullCode))
|
||||
if (first == NullCode)
|
||||
return -1;
|
||||
if (first < quint32(QDataStreamSizes::ExtendedSize) || s.version() < QDataStream::Qt_6_7)
|
||||
if (first < ExtendedSize || s.version() < QDataStream::Qt_6_7)
|
||||
return qint64(first);
|
||||
qint64 extendedLen;
|
||||
s >> extendedLen;
|
||||
@ -432,12 +433,12 @@ qint64 QDataStream::readQSizeType(QDataStream &s)
|
||||
|
||||
bool QDataStream::writeQSizeType(QDataStream &s, qint64 value)
|
||||
{
|
||||
if (value < qint64(QDataStreamSizes::ExtendedSize)) {
|
||||
if (value < qint64(ExtendedSize)) {
|
||||
s << quint32(value);
|
||||
} else if (s.version() >= QDataStream::Qt_6_7) {
|
||||
s << quint32(QDataStreamSizes::ExtendedSize) << value;
|
||||
} else if (value == qint64(QDataStreamSizes::ExtendedSize)) {
|
||||
s << quint32(QDataStreamSizes::ExtendedSize);
|
||||
s << ExtendedSize << value;
|
||||
} else if (value == qint64(ExtendedSize)) {
|
||||
s << ExtendedSize;
|
||||
} else {
|
||||
s.setStatus(QDataStream::SizeLimitExceeded); // value is too big for old format
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user