From d146cfa2688f978f63157b716e9a29d6aaa06652 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 27 Mar 2025 07:01:14 +0100 Subject: [PATCH] tst_QPushButton: don't leak m_touchScreen Same problem as in 49a87936ef50acb1ab7156809bf5f85671d36f24, same fix: hold the result of createTouchDevice() in an owning pointer. Amends d15d9d49ac1e5120c052bb6c7e8bac5350eea357. Pick-to: 6.8 6.5 Change-Id: I348336d82c167d95545c9e3d46e7479606605df9 Reviewed-by: Axel Spoerl (cherry picked from commit 4981333ff3f8a5826a21ebf14c4f1e097a4d03dc) Reviewed-by: Qt Cherry-pick Bot --- .../widgets/widgets/qpushbutton/tst_qpushbutton.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp index 73360ae21d5..9ef952ec071 100644 --- a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp +++ b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp @@ -71,7 +71,7 @@ private: int release_count; QPushButton *testWidget; - QPointingDevice *m_touchScreen = QTest::createTouchDevice(); + std::unique_ptr m_touchScreen{QTest::createTouchDevice()}; }; // Testing get/set functions @@ -376,10 +376,10 @@ void tst_QPushButton::clicked() void tst_QPushButton::touchTap() { - QTest::touchEvent(testWidget, m_touchScreen).press(0, QPoint(10, 10)); + QTest::touchEvent(testWidget, m_touchScreen.get()).press(0, QPoint(10, 10)); QCOMPARE(press_count, 1); QCOMPARE(release_count, 0); - QTest::touchEvent(testWidget, m_touchScreen).release(0, QPoint(10, 10)); + QTest::touchEvent(testWidget, m_touchScreen.get()).release(0, QPoint(10, 10)); QCOMPARE(press_count, 1); QCOMPARE(release_count, 1); QCOMPARE(click_count, 1); @@ -389,8 +389,8 @@ void tst_QPushButton::touchTap() click_count = 0; testWidget->setDown(false); for (uint i = 0; i < 10; i++) { - QTest::touchEvent(testWidget, m_touchScreen).press(0, QPoint(10, 10)); - QTest::touchEvent(testWidget, m_touchScreen).release(0, QPoint(10, 10)); + QTest::touchEvent(testWidget, m_touchScreen.get()).press(0, QPoint(10, 10)); + QTest::touchEvent(testWidget, m_touchScreen.get()).release(0, QPoint(10, 10)); } QCOMPARE(press_count, 10); QCOMPARE(release_count, 10);