diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2016-11-16 13:11:43 +0100 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2016-11-23 14:04:57 +0000 |
commit | d3ab4a1ce7cd0fe6539d592138a8119dd51d818f (patch) | |
tree | d9d3045a8ad1d640316af6a1a80db07e64061820 | |
parent | 435e7b17a35f4aa2cc2a7cb3ac935cf56ee27d62 (diff) | |
download | qtbase-d3ab4a1ce7cd0fe6539d592138a8119dd51d818f.tar.gz |
_q_networkSessionClosed - disconnect the correct object
We have:
...
auto networkSession = getNetworkSession();
...
getNetworkSession() can return non-null pointer even if
networkSessionStrongRef is null:
...
if (networkSessionStrongRef)
return networkSessionStrongRef;
return networkSessionWeakRef.toStrongRef();
....
We check the result:
if (networkSession) {
// here we disconnect signals
}
But we should use the same networkSession when disconnecting,
not start using networkSessionStrongRef suddenly, since it can
be null.
Task-number: QTBUG-57110
Change-Id: I96babb42c2182e741e6eabaf7d1abb88869861f4
Reviewed-by: Jesus Fernandez <jesus.fernandez@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
-rw-r--r-- | src/network/access/qnetworkaccessmanager.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index b649aba4a8..57d110ed94 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1599,7 +1599,7 @@ void QNetworkAccessManagerPrivate::_q_networkSessionClosed() QObject::disconnect(networkSession.data(), SIGNAL(closed()), q, SLOT(_q_networkSessionClosed())); QObject::disconnect(networkSession.data(), SIGNAL(stateChanged(QNetworkSession::State)), q, SLOT(_q_networkSessionStateChanged(QNetworkSession::State))); - QObject::disconnect(networkSessionStrongRef.data(), SIGNAL(error(QNetworkSession::SessionError)), + QObject::disconnect(networkSession.data(), SIGNAL(error(QNetworkSession::SessionError)), q, SLOT(_q_networkSessionFailed(QNetworkSession::SessionError))); networkSessionStrongRef.clear(); |