Details
-
Bug
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.7.1
-
None
Description
My pinger application doesn't work properly on Windows (8.1 x64 and on 7 x64 - compiler is mingw 5.3.0 ).
My investigation shows, that QObject::connect() couldn't find a signal by a function pointer.
I couldn't reproduce it in a simple project. But the bug occurs every time in my project.
Some screenshots bellow allow me to give more details:
(connect_diff_address.png): I've added val1 and val2 variables to the moc_* file in order to show that there are different addresses ( 0x409c09 vs 0x9a970c in topright debugger area) in QtPingManager::qt_static_metacall
(connect_same_address.png): Let's come back by call stack to my code in PingerHttpServer.
val1 and val2 here contain the same addresses (0x409c08 in top-right debugger arrea).
QtPingManager's signal declaration:
As you can see on the last screenshot, I'm using the following form of connect
connect( m_pinger, &QtPingManager::nodeListResponse, this, &PingerHttpServer::onNodeListResponse, Qt::QueuedConnection );
If the following old form will be used:
connect( m_pinger, SIGNAL(nodeListResponse(QString,QStringList)), this, SLOT(onNodeListResponse(QString,QStringList)), Qt::QueuedConnection );
then all works fine.
Also the new form of connect works fine on Linux (Ubuntu and Oracle Linux).