summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qbitarray.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2024-01-27 10:32:20 +0100
committerMarc Mutz <marc.mutz@qt.io>2024-02-01 19:41:25 +0100
commit741617aea0e4c631b2fd4b822f0948ec067f1cdc (patch)
treec4137c9cec770299cb66bb64575362d9e3841baa /src/corelib/tools/qbitarray.cpp
parent4aa2e594ff055e46c56734a2c0838c214c6bce88 (diff)
QBitArray: DRY operator<<(QDataStream&)
Drag the common parts out of the if-else. This also means that qsizetype size() is no longer truncated in the assignment to quint32 len, but that doesn't fix the problem that we create invalid Qt 5 streams when the QBitArray has more than INT_MAX bits in it. That is for a follow-up patch (which is why the {} stay for now). As a drive-by, replace verbose constData() with data() (the QByteArray is already const). Pick-to: 6.7 6.6 6.5 6.2 Change-Id: Iabf816e16f823bb3959469a635a21339242f36fc Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/corelib/tools/qbitarray.cpp')
-rw-r--r--src/corelib/tools/qbitarray.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp
index 0ea012a94b..8c750dd01c 100644
--- a/src/corelib/tools/qbitarray.cpp
+++ b/src/corelib/tools/qbitarray.cpp
@@ -898,19 +898,15 @@ QBitArray operator^(const QBitArray &a1, const QBitArray &a2)
QDataStream &operator<<(QDataStream &out, const QBitArray &ba)
{
+ const qsizetype len = ba.size();
if (out.version() < QDataStream::Qt_6_0) {
- quint32 len = ba.size();
- out << len;
- if (len > 0)
- out.writeRawData(ba.d.constData() + 1, ba.d.size() - 1);
- return out;
+ out << quint32(len);
} else {
- quint64 len = ba.size();
- out << len;
- if (len > 0)
- out.writeRawData(ba.d.constData() + 1, ba.d.size() - 1);
- return out;
+ out << quint64(len);
}
+ if (len > 0)
+ out.writeRawData(ba.d.data() + 1, ba.d.size() - 1);
+ return out;
}
/*!