QCborStreamReader: make sure setDevice() clears the last error
The unit tests weren't running into this problem because the every setDevice() was preceded by the object being initialized with the exact same data, so there was never a previous error state. I've only changed a couple of tests, left the other setDevice() unchanged so we test both behaviors. Fixes: QTBUG-71426 Change-Id: I1bd327aeaf73421a8ec5fffd1561a590e3933376 Reviewed-by: Nils Jeisecke <nils.jeisecke@saltation.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
c0b1230108
commit
e7998dc187
|
|
@ -1779,6 +1779,8 @@ public:
|
|||
preread();
|
||||
if (CborError err = cbor_parser_init_reader(nullptr, &parser, ¤tElement, this))
|
||||
handleError(err);
|
||||
else
|
||||
lastError = { QCborError::NoError };
|
||||
}
|
||||
|
||||
char *bufferPtr()
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ void tst_QCborStreamReader::integers()
|
|||
quint64 absolute = (isNegative ? expectedRaw + 1 : expectedRaw);
|
||||
|
||||
QBuffer buffer(&data);
|
||||
QCborStreamReader reader(data);
|
||||
QCborStreamReader reader(useDevice ? QByteArray() : data);
|
||||
if (useDevice) {
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
reader.setDevice(&buffer);
|
||||
|
|
@ -605,7 +605,7 @@ void tst_QCborStreamReader::fixed()
|
|||
removeIndicators(expected);
|
||||
|
||||
QBuffer buffer(&data);
|
||||
QCborStreamReader reader(data);
|
||||
QCborStreamReader reader(useDevice ? QByteArray() : data);
|
||||
if (useDevice) {
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
reader.setDevice(&buffer);
|
||||
|
|
|
|||
Loading…
Reference in New Issue