tst_QNetworkReply: don't use deleteLater() on QSignalSpies

Turn the QSignalSpy deletions from deferred (via deleteLater()) into
immediate ones. This is ok: QSignalSpy is using itself as a context
object in QMetaObject::connect(), so the connection thus established
to the monitored signal will be atomically severed if either sender or
receiver are destroyed. There never was a need to defer deletion of
the signal spy, so don't.

Found by making QSignalSpy's inheritance from QObject private.

Pick-to: 6.7 6.6 6.5
Change-Id: I962d28c3a78f356d234324fed68716f2f1052100
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
bb10
Marc Mutz 2024-03-19 18:31:28 +01:00
parent 17d2550ed0
commit eefd8ab1e8
1 changed files with 2 additions and 2 deletions

View File

@ -8829,9 +8829,9 @@ void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890
for (int a = 0; a < urls.size(); ++a) {
QVERIFY(replies.at(a)->isFinished());
QCOMPARE(errorSpies.at(a)->size(), 1);
errorSpies.at(a)->deleteLater();
delete errorSpies.at(a);
QCOMPARE(finishedSpies.at(a)->size(), 1);
finishedSpies.at(a)->deleteLater();
delete finishedSpies.at(a);
replies.at(a)->deleteLater();
}
}