summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qobject
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2019-01-09 19:12:46 +0100
committerLars Knoll <lars.knoll@qt.io>2019-03-29 13:46:17 +0000
commit6e0b5dadc7e91be786411809f1f9667c239168e2 (patch)
tree4c8efa67ad7b5ebcd3536ee16af07eed697b0d57 /tests/auto/corelib/kernel/qobject
parenta2fda801cc2e3558d8bcf7a002df6a824f9509fa (diff)
Change cleanup mechanism for orphaned connections
Put all connections that get disconnected into a singly linked orphaned list. Whenever the refcount on the connectionData drops down to one, this list can safely be cleared, even with the planned removal of locking in activate(). Use an id integer in the connection to acoid activating newly added connections. Fixes: QTBUG-72649 Change-Id: Ide3d116ae7fc9ca497598c1c2b71d43b4339c92d Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto/corelib/kernel/qobject')
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
index b823ca2aab..f51fb9bf49 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
@@ -3411,12 +3411,11 @@ void tst_QObject::disconnectSelfInSlotAndDeleteAfterEmit()
void tst_QObject::dumpObjectInfo()
{
QObject a, b;
- QObject::connect(&a, SIGNAL(destroyed(QObject*)), &b, SLOT(deleteLater()));
- a.disconnect(&b);
+ QObject::connect(&a, &QObject::destroyed, &b, &QObject::deleteLater);
QTest::ignoreMessage(QtDebugMsg, "OBJECT QObject::unnamed");
QTest::ignoreMessage(QtDebugMsg, " SIGNALS OUT");
QTest::ignoreMessage(QtDebugMsg, " signal: destroyed(QObject*)");
- QTest::ignoreMessage(QtDebugMsg, " <Disconnected receiver>");
+ QTest::ignoreMessage(QtDebugMsg, " <functor or function pointer>");
QTest::ignoreMessage(QtDebugMsg, " SIGNALS IN");
QTest::ignoreMessage(QtDebugMsg, " <None>");
a.dumpObjectInfo(); // should not crash
@@ -7575,8 +7574,6 @@ void tst_QObject::functorReferencesConnection()
// top-level + the one in the 3 others lambdas
QCOMPARE(countedStructObjectsCount, 4);
QObject::disconnect(*c2);
- // the one in the c2's lambda is gone
- QCOMPARE(countedStructObjectsCount, 3);
slot1Called++;
});
connect(&obj, &GetSenderObject::aSignal, [] {}); // just a dummy signal to fill the connection list