diff options
| -rw-r--r-- | src/corelib/serialization/qdatastream.cpp | 7 | ||||
| -rw-r--r-- | src/corelib/serialization/qdatastream.h | 8 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/corelib/serialization/qdatastream.cpp b/src/corelib/serialization/qdatastream.cpp index f1572b46c7d..57713d36459 100644 --- a/src/corelib/serialization/qdatastream.cpp +++ b/src/corelib/serialization/qdatastream.cpp @@ -476,11 +476,14 @@ void QDataStream::setStatus(Status status) void QDataStream::setByteOrder(ByteOrder bo) { +#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) && !defined(QT_BOOTSTRAPPED) + // accessed by inline byteOrder() prior to Qt 6.8 byteorder = bo; +#endif if (QSysInfo::ByteOrder == QSysInfo::BigEndian) - noswap = (byteorder == BigEndian); + noswap = (bo == BigEndian); else - noswap = (byteorder == LittleEndian); + noswap = (bo == LittleEndian); } diff --git a/src/corelib/serialization/qdatastream.h b/src/corelib/serialization/qdatastream.h index e7ef94a8a70..36d8a618ff0 100644 --- a/src/corelib/serialization/qdatastream.h +++ b/src/corelib/serialization/qdatastream.h @@ -221,7 +221,9 @@ private: bool noswap = QSysInfo::ByteOrder == QSysInfo::BigEndian; quint8 fpPrecision = QDataStream::DoublePrecision; quint8 q_status = Ok; +#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) && !defined(QT_BOOTSTRAPPED) ByteOrder byteorder = BigEndian; +#endif int ver = Qt_DefaultCompiledVersion; quint16 transactionDepth = 0; @@ -438,7 +440,11 @@ QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const #endif // INLINE_SINCE 6.8 inline QDataStream::ByteOrder QDataStream::byteOrder() const -{ return byteorder; } +{ + if constexpr (QSysInfo::ByteOrder == QSysInfo::BigEndian) + return noswap ? BigEndian : LittleEndian; + return noswap ? LittleEndian : BigEndian; +} inline int QDataStream::version() const { return ver; } |
