summaryrefslogtreecommitdiffstats
path: root/src/serialbus/qmodbuspdu.cpp
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2021-03-04 11:37:37 +0100
committerKarsten Heimrich <karsten.heimrich@qt.io>2021-03-04 14:23:39 +0100
commit94e75b8b0ce02a24bec2b7309615f2638e37a1ce (patch)
tree559816d7e4aff61ea6daf12ffc9b7296559e5938 /src/serialbus/qmodbuspdu.cpp
parentac853f1fd0b73619925224955b3064f51fbdb923 (diff)
Fix 5.15 compile error
Change-Id: Iff78d4f410e62328fce04c0a7212aec961425427 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/serialbus/qmodbuspdu.cpp')
-rw-r--r--src/serialbus/qmodbuspdu.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/serialbus/qmodbuspdu.cpp b/src/serialbus/qmodbuspdu.cpp
index b07a3ce..2c91588 100644
--- a/src/serialbus/qmodbuspdu.cpp
+++ b/src/serialbus/qmodbuspdu.cpp
@@ -121,6 +121,8 @@ static int minimumDataSize(const QModbusPdu &pdu, Type type)
static QDataStream &pduFromStream(QDataStream &stream, Type type, QModbusPdu *pdu)
{
struct RAII {
+ RAII(QModbusPdu *ptr = nullptr)
+ : tmp(ptr) {}
QModbusPdu *tmp{ nullptr };
~RAII() { if (tmp) *tmp = {}; }
} raii = { pdu };
@@ -170,8 +172,8 @@ static QDataStream &pduFromStream(QDataStream &stream, Type type, QModbusPdu *pd
size += left;
}
if ((stream.status() == QDataStream::Ok) && (size <= MaxPduDataSize)) {
+ raii = {};
pdu->setData(data);
- raii = { nullptr };
return stream; // early return to avoid second read
}
} else {
@@ -187,8 +189,8 @@ static QDataStream &pduFromStream(QDataStream &stream, Type type, QModbusPdu *pd
if (data.size() <= MaxPduDataSize) {
data.resize(size);
if (stream.readRawData(data.data(), data.size()) == size) {
+ raii = {};
pdu->setData(data);
- raii = { nullptr };
}
}
return stream;