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.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> (cherry picked from commit 741617aea0e4c631b2fd4b822f0948ec067f1cdc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
277aa8e61b
commit
5e3723e7ff
@ -894,19 +894,15 @@ QBitArray operator^(const QBitArray &a1, const QBitArray &a2)
|
|||||||
|
|
||||||
QDataStream &operator<<(QDataStream &out, const QBitArray &ba)
|
QDataStream &operator<<(QDataStream &out, const QBitArray &ba)
|
||||||
{
|
{
|
||||||
|
const qsizetype len = ba.size();
|
||||||
if (out.version() < QDataStream::Qt_6_0) {
|
if (out.version() < QDataStream::Qt_6_0) {
|
||||||
quint32 len = ba.size();
|
out << quint32(len);
|
||||||
out << len;
|
|
||||||
if (len > 0)
|
|
||||||
out.writeRawData(ba.d.constData() + 1, ba.d.size() - 1);
|
|
||||||
return out;
|
|
||||||
} else {
|
} else {
|
||||||
quint64 len = ba.size();
|
out << quint64(len);
|
||||||
out << len;
|
|
||||||
if (len > 0)
|
|
||||||
out.writeRawData(ba.d.constData() + 1, ba.d.size() - 1);
|
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
if (len > 0)
|
||||||
|
out.writeRawData(ba.d.data() + 1, ba.d.size() - 1);
|
||||||
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user