diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2024-02-10 13:02:03 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2024-03-12 12:51:42 -0800 |
commit | 4aa0eab263917ee8dc104be3d858f53d8033662f (patch) | |
tree | 60ece10ec63bbf47e63785db98ac0599ee0ba8e7 /src/corelib/serialization/qdatastream.h | |
parent | 566b726b8400d473861a62b4b9de87d1f0958d6d (diff) |
QDataStream: inline floatingPointPrecision()
There is a 2-byte padding in all architectures between the noswap member
and byteorder, because the latter requires a 32-bit alignment. So we can
use this space to store this little-used field and avoid one more reason
for QDataStreamPrivate.
Now:
class QScopedPointer<QDataStreamPrivate> d; /* 0 8 */
class QIODevice * dev; /* 8 8 */
bool owndev; /* 16 1 */
bool noswap; /* 17 1 */
quint8 fpPrecision; /* 18 1 */
/* XXX 1 byte hole, try to pack */
enum ByteOrder byteorder; /* 20 4 */
int ver; /* 24 4 */
enum Status q_status; /* 28 4 */
/* size: 32, cachelines: 1, members: 9 */
Change-Id: I50e2158aeade4256ad1dfffd17b29c2c5db02c12
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/serialization/qdatastream.h')
-rw-r--r-- | src/corelib/serialization/qdatastream.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/serialization/qdatastream.h b/src/corelib/serialization/qdatastream.h index efcc23e49a..b4be27f474 100644 --- a/src/corelib/serialization/qdatastream.h +++ b/src/corelib/serialization/qdatastream.h @@ -127,6 +127,7 @@ public: void setStatus(Status status); void resetStatus(); + QT_CORE_INLINE_SINCE(6, 8) FloatingPointPrecision floatingPointPrecision() const; void setFloatingPointPrecision(FloatingPointPrecision precision); @@ -218,6 +219,7 @@ private: QIODevice *dev; bool owndev; bool noswap; + quint8 fpPrecision = QDataStream::DoublePrecision; ByteOrder byteorder; int ver; Status q_status; @@ -426,6 +428,11 @@ QDataStream::Status QDataStream::status() const { return q_status; } + +QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const +{ + return FloatingPointPrecision(fpPrecision); +} #endif // INLINE_SINCE 6.8 inline QDataStream::ByteOrder QDataStream::byteOrder() const |