summaryrefslogtreecommitdiffstats
path: root/src/nfc
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2016-06-09 15:00:36 +0200
committerAlex Blasche <alexander.blasche@theqtcompany.com>2016-06-09 15:00:43 +0200
commit6d9a7006e81fc9ef6140bfc62696d1b270aaae08 (patch)
treed7ce8d417f32ab73543740beab3cdee36b4fdfaf /src/nfc
parentbde54c522b76eeb933296aa1a9e159facbf8e529 (diff)
parent74916ede2ff34c2040db9cabbb5a6ee81442a7e8 (diff)
Merge remote-tracking branch 'gerrit/5.6' into 5.7
Diffstat (limited to 'src/nfc')
-rw-r--r--src/nfc/qnearfieldtagtype1.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/nfc/qnearfieldtagtype1.cpp b/src/nfc/qnearfieldtagtype1.cpp
index f365b1a3..5d46b8c5 100644
--- a/src/nfc/qnearfieldtagtype1.cpp
+++ b/src/nfc/qnearfieldtagtype1.cpp
@@ -82,7 +82,8 @@ public:
QNearFieldTagType1Private(QNearFieldTagType1 *q)
: q_ptr(q), m_readNdefMessageState(NotReadingNdefMessage),
m_tlvReader(0),
- m_writeNdefMessageState(NotWritingNdefMessage)
+ m_writeNdefMessageState(NotWritingNdefMessage),
+ m_tlvWriter(0)
{ }
QNearFieldTagType1 *q_ptr;
@@ -170,11 +171,13 @@ void QNearFieldTagType1Private::progressToNextNdefReadMessageState()
}
m_readNdefMessageState = NdefReadReadingTlv;
+ delete m_tlvReader;
m_tlvReader = new QTlvReader(q);
// fall through
}
case NdefReadReadingTlv:
+ Q_ASSERT(m_tlvReader);
while (!m_tlvReader->atEnd()) {
if (!m_tlvReader->readNext())
break;
@@ -246,11 +249,13 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
}
m_writeNdefMessageState = NdefWriteReadingTlv;
+ delete m_tlvReader;
m_tlvReader = new QTlvReader(q);
// fall through
}
case NdefWriteReadingTlv:
+ Q_ASSERT(m_tlvReader);
while (!m_tlvReader->atEnd()) {
if (!m_tlvReader->readNext())
break;
@@ -270,6 +275,7 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
// fall through
case NdefWriteWritingTlv:
+ delete m_tlvWriter;
m_tlvWriter = new QTlvWriter(q);
// write old TLVs
@@ -288,6 +294,7 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
// fall through
case NdefWriteWritingTlvFlush:
// flush the writer
+ Q_ASSERT(m_tlvWriter);
if (m_tlvWriter->process(true)) {
m_nextExpectedRequestId = QNearFieldTarget::RequestId();
m_writeNdefMessageState = NotWritingNdefMessage;