summaryrefslogtreecommitdiffstats
path: root/src
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-10 08:00:50 +0100
commit1d674e21715aeadf242dea1d567bbbf7696acbdc (patch)
tree7655f32a397d93a8a884470dbd6f6aa15239d8b8 /src
parent4e7a1e844b352ca3da4dce7e96814d500d062cd8 (diff)
Fix 5.15 compile error
Change-Id: Iff78d4f410e62328fce04c0a7212aec961425427 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src')
-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 75e5ed8..112b73d 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;