diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2020-12-23 00:55:14 +0100 |
---|---|---|
committer | Uwe Klotz <uklotz@mixxx.org> | 2020-12-30 11:46:22 +0100 |
commit | cf427bd3ea12501b416bf7add62f2ccd3bd6d090 (patch) | |
tree | 9037e78561f56116008b3d1d0c23f8bc0228b8ed /src/network | |
parent | fb8f78ea8b540baf18aa39f124ed4914fbc41a04 (diff) |
WebTask: Account for side-effect between deleteLater() and QPointer
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/webtask.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/network/webtask.cpp b/src/network/webtask.cpp index 52487f3f2d..0db9936cad 100644 --- a/src/network/webtask.cpp +++ b/src/network/webtask.cpp @@ -287,7 +287,6 @@ void WebTask::slotNetworkReplyFinished() { VERIFY_OR_DEBUG_ASSERT(finishedNetworkReply) { return; } - finishedNetworkReply->deleteLater(); if (kLogger.debugEnabled()) { if (finishedNetworkReply->url() == finishedNetworkReply->request().url()) { kLogger.debug() @@ -310,12 +309,20 @@ void WebTask::slotNetworkReplyFinished() { DEBUG_ASSERT(m_timeoutTimerId == kInvalidTimerId); kLogger.debug() << this - << "Ignoring obsolete network reply"; + << "Discarding obsolete network reply"; + finishedNetworkReply->deleteLater(); return; } VERIFY_OR_DEBUG_ASSERT(m_pendingNetworkReply == finishedNetworkReply) { + kLogger.debug() + << this + << "Discarding unexpected network reply"; + finishedNetworkReply->deleteLater(); return; } + // As a side-effect QObject::deleteLater() might reset + // QPointer references like m_pendingNetworkReply! + finishedNetworkReply->deleteLater(); m_pendingNetworkReply = nullptr; VERIFY_OR_DEBUG_ASSERT(m_state == State::Pending) { |