Don't push unnecessary data to a data stream for QVariant()
Adjust the test because we don't read past the end anymore. Task-number: QTBUG-25108 Change-Id: I8243f1d5ae79d1256aab2cb1132598a716a7eeeb Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>bb10
parent
fffc900f78
commit
369863efef
|
|
@ -253,9 +253,6 @@ enum {
|
|||
DefaultStreamVersion = QDataStream::Qt_5_0
|
||||
};
|
||||
|
||||
// ### 5.0: when streaming invalid QVariants, just the type should
|
||||
// be written, no "data" after it
|
||||
|
||||
/*!
|
||||
Constructs a data stream that has no I/O device.
|
||||
|
||||
|
|
|
|||
|
|
@ -1705,9 +1705,11 @@ void QVariant::load(QDataStream &s)
|
|||
d.is_null = is_null;
|
||||
|
||||
if (!isValid()) {
|
||||
if (s.version() < QDataStream::Qt_5_0) {
|
||||
// Since we wrote something, we should read something
|
||||
QString x;
|
||||
s >> x;
|
||||
QString x;
|
||||
s >> x;
|
||||
}
|
||||
d.is_null = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -1769,7 +1771,8 @@ void QVariant::save(QDataStream &s) const
|
|||
}
|
||||
|
||||
if (!isValid()) {
|
||||
s << QString();
|
||||
if (s.version() < QDataStream::Qt_5_0)
|
||||
s << QString();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2901,13 +2901,13 @@ void tst_QVariant::loadUnknownUserType()
|
|||
|
||||
void tst_QVariant::loadBrokenUserType()
|
||||
{
|
||||
char data[] = {0, 0, 0, 127, 0, 112 };
|
||||
char data[] = {0, 0, 0, 127, 0 };
|
||||
|
||||
QByteArray ba(data, sizeof(data));
|
||||
QDataStream ds(&ba, QIODevice::ReadOnly);
|
||||
QVariant var;
|
||||
var.load(ds);
|
||||
QCOMPARE(ds.status(), QDataStream::ReadPastEnd);
|
||||
QCOMPARE(ds.status(), QDataStream::Ok);
|
||||
}
|
||||
|
||||
void tst_QVariant::invalidDate() const
|
||||
|
|
|
|||
Loading…
Reference in New Issue