Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.4.1, 5.5.1, 5.6.0 Beta
-
None
-
Windows 8.1 x64, Visual Studio 2013
-
de225ccdf95efb57866d62bc80872c1a2ab99703
Description
I have multithreaded C++ application which uses QNetworkAccessManager in it's threads. Sometimes it gives me this warning message:
QObject::connect: Incompatible sender/receiver arguments
QNetworkSessionPrivateImpl::error(QNetworkSession::SessionError) --> QNetworkSession::error(QNetworkSession::SessionError)
Call stack looks like this:
QNetworkAccessManager::get ->
QNetworkAccessManager::createRequest ->
QNetworkAccessManagerPrivate::createSession ->
QSharedNetworkSessionManager::getSession ->
QNetworkSession::QNetworkSession ->
QObject::connect ->
QMessageLogger::warning
I tried to figure out what is going on. So I checked QObject::connect under debugger:
if (!QMetaObjectPrivate::checkConnectArgs(signalTypes.size(), signalTypes.constData(),
methodTypes.size(), methodTypes.constData())) {
signalTypes contains one item:
_type = 0 (int)
_name = "QNetworkSession::SessionError" (QByteArray)
methodTypes contains one item too:
_type = 1044 (int)
_name = "QNetworkSession::SessionError" (QByteArray)
QMetaObjectPrivate::checkConnectArgs checks types:
for (int i = 0; i < methodArgc; ++i) {
if (signalTypes[i] != methodTypes[i])
return false;
So I think this difference is the reason of the warning.
Another warning types I encountered are:
QObject::connect: Incompatible sender/receiver arguments
QNetworkSessionPrivateImpl::stateChanged(QNetworkSession::State) --> QNetworkSession::stateChanged(QNetworkSession::State)
QObject::connect: Incompatible sender/receiver arguments
QNetworkSessionPrivateImpl::usagePoliciesChanged(QNetworkSession::UsagePolicies) --> QNetworkSession::usagePoliciesChanged(QNetworkSession::UsagePolicies)