From 071dd60ab248382239e8e31dca3cbfa242ac850d Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Fri, 30 Oct 2020 15:26:31 +0000 Subject: [PATCH] [autotests] Keep registry on the stack Parenting both registry and the client connection to the test leads to a confusing teardown order. Especially as m_connection is explicitly deleted in cleanup() Scoping registry to where it's actually used solves that --- .../server/test_datacontrol_interface.cpp | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/wayland/autotests/server/test_datacontrol_interface.cpp b/src/wayland/autotests/server/test_datacontrol_interface.cpp index a27363f2ff..c178c6c2c6 100644 --- a/src/wayland/autotests/server/test_datacontrol_interface.cpp +++ b/src/wayland/autotests/server/test_datacontrol_interface.cpp @@ -186,26 +186,25 @@ void DataControlInterfaceTest::init() m_queue->setup(m_connection); QVERIFY(m_queue->isValid()); - auto registry = new KWayland::Client::Registry(this); - connect(registry, &KWayland::Client::Registry::interfaceAnnounced, this, [this, registry](const QByteArray &interface, quint32 name, quint32 version) { + KWayland::Client::Registry registry; + connect(®istry, &KWayland::Client::Registry::interfaceAnnounced, this, [this, ®istry](const QByteArray &interface, quint32 name, quint32 version) { if (interface == "zwlr_data_control_manager_v1") { m_dataControlDeviceManager = new DataControlDeviceManager; - m_dataControlDeviceManager->init(registry->registry(), name, version); - m_dataControlDeviceManager->setParent(registry); + m_dataControlDeviceManager->init(registry.registry(), name, version); } }); - connect(registry, &KWayland::Client::Registry::seatAnnounced, this, [this, registry](quint32 name, quint32 version) { - m_clientSeat = registry->createSeat(name, version); + connect(®istry, &KWayland::Client::Registry::seatAnnounced, this, [this, ®istry](quint32 name, quint32 version) { + m_clientSeat = registry.createSeat(name, version); }); - registry->setEventQueue(m_queue); - QSignalSpy compositorSpy(registry, &KWayland::Client::Registry::compositorAnnounced); - registry->create(m_connection->display()); - QVERIFY(registry->isValid()); - registry->setup(); + registry.setEventQueue(m_queue); + QSignalSpy compositorSpy(®istry, &KWayland::Client::Registry::compositorAnnounced); + registry.create(m_connection->display()); + QVERIFY(registry.isValid()); + registry.setup(); wl_display_flush(m_connection->display()); QVERIFY(compositorSpy.wait()); - m_clientCompositor = registry->createCompositor(compositorSpy.first().first().value(), compositorSpy.first().last().value(), this); + m_clientCompositor = registry.createCompositor(compositorSpy.first().first().value(), compositorSpy.first().last().value(), this); QVERIFY(m_clientCompositor->isValid()); QVERIFY(m_dataControlDeviceManager);