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>
This commit is contained in:
parent
566b726b84
commit
4aa0eab263
@ -406,16 +406,14 @@ bool QDataStream::atEnd() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\fn QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const
|
||||||
|
|
||||||
Returns the floating point precision of the data stream.
|
Returns the floating point precision of the data stream.
|
||||||
|
|
||||||
\since 4.6
|
\since 4.6
|
||||||
|
|
||||||
\sa FloatingPointPrecision, setFloatingPointPrecision()
|
\sa FloatingPointPrecision, setFloatingPointPrecision()
|
||||||
*/
|
*/
|
||||||
QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const
|
|
||||||
{
|
|
||||||
return d ? d->floatingPointPrecision : QDataStream::DoublePrecision;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Sets the floating point precision of the data stream to \a precision. If the floating point precision is
|
Sets the floating point precision of the data stream to \a precision. If the floating point precision is
|
||||||
@ -439,9 +437,7 @@ QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const
|
|||||||
*/
|
*/
|
||||||
void QDataStream::setFloatingPointPrecision(QDataStream::FloatingPointPrecision precision)
|
void QDataStream::setFloatingPointPrecision(QDataStream::FloatingPointPrecision precision)
|
||||||
{
|
{
|
||||||
if (!d)
|
fpPrecision = precision;
|
||||||
d.reset(new QDataStreamPrivate());
|
|
||||||
d->floatingPointPrecision = precision;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -127,6 +127,7 @@ public:
|
|||||||
void setStatus(Status status);
|
void setStatus(Status status);
|
||||||
void resetStatus();
|
void resetStatus();
|
||||||
|
|
||||||
|
QT_CORE_INLINE_SINCE(6, 8)
|
||||||
FloatingPointPrecision floatingPointPrecision() const;
|
FloatingPointPrecision floatingPointPrecision() const;
|
||||||
void setFloatingPointPrecision(FloatingPointPrecision precision);
|
void setFloatingPointPrecision(FloatingPointPrecision precision);
|
||||||
|
|
||||||
@ -218,6 +219,7 @@ private:
|
|||||||
QIODevice *dev;
|
QIODevice *dev;
|
||||||
bool owndev;
|
bool owndev;
|
||||||
bool noswap;
|
bool noswap;
|
||||||
|
quint8 fpPrecision = QDataStream::DoublePrecision;
|
||||||
ByteOrder byteorder;
|
ByteOrder byteorder;
|
||||||
int ver;
|
int ver;
|
||||||
Status q_status;
|
Status q_status;
|
||||||
@ -426,6 +428,11 @@ QDataStream::Status QDataStream::status() const
|
|||||||
{
|
{
|
||||||
return q_status;
|
return q_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDataStream::FloatingPointPrecision QDataStream::floatingPointPrecision() const
|
||||||
|
{
|
||||||
|
return FloatingPointPrecision(fpPrecision);
|
||||||
|
}
|
||||||
#endif // INLINE_SINCE 6.8
|
#endif // INLINE_SINCE 6.8
|
||||||
|
|
||||||
inline QDataStream::ByteOrder QDataStream::byteOrder() const
|
inline QDataStream::ByteOrder QDataStream::byteOrder() const
|
||||||
|
@ -24,11 +24,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
class QDataStreamPrivate
|
class QDataStreamPrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QDataStreamPrivate() : floatingPointPrecision(QDataStream::DoublePrecision),
|
int transactionDepth = 0;
|
||||||
transactionDepth(0) { }
|
|
||||||
|
|
||||||
QDataStream::FloatingPointPrecision floatingPointPrecision;
|
|
||||||
int transactionDepth;
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user