From 150660887f9cb402e16e351252a6ccdbee235ad9 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 21 Jan 2021 12:21:33 +0100 Subject: tst_qsequentialanimationgroup.cpp: Avoid some memory leaks Change-Id: Iecedb31b6993f6771b4b7a5d2708995365b8515f Reviewed-by: Fabian Kosmale Reviewed-by: Friedemann Kleint --- .../tst_qsequentialanimationgroup.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/tests/auto/corelib/animation/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/corelib/animation/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp index 0cb7fa6b2d..f83594e32a 100644 --- a/tests/auto/corelib/animation/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp +++ b/tests/auto/corelib/animation/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp @@ -34,6 +34,7 @@ #include #include +#include Q_DECLARE_METATYPE(QAbstractAnimation::State) @@ -743,12 +744,12 @@ void tst_QSequentialAnimationGroup::restart() QVERIFY(seqStateChangedSpy.isValid()); QVariantAnimation *anims[3]; - QSignalSpy *animsStateChanged[3]; + QScopedPointer animsStateChanged[3]; for (int i = 0; i < 3; i++) { anims[i] = new DummyPropertyAnimation; anims[i]->setDuration(100); - animsStateChanged[i] = new QSignalSpy(anims[i], &QVariantAnimation::stateChanged); + animsStateChanged[i].reset(new QSignalSpy(anims[i], &QVariantAnimation::stateChanged)); QVERIFY(animsStateChanged[i]->isValid()); } @@ -1467,25 +1468,33 @@ void tst_QSequentialAnimationGroup::finishWithUncontrolledAnimation() void tst_QSequentialAnimationGroup::addRemoveAnimation() { //this test is specific to the sequential animation group + QPointer anim0 = new QPropertyAnimation; + QPointer anim1 = new QPropertyAnimation; + QPointer anim2 = new QPropertyAnimation; + + const auto guard = qScopeGuard([&]() { + // If they don't belong to a group when the function returns, we have to delete. + delete anim0.data(); + delete anim1.data(); + delete anim2.data(); + }); + QSequentialAnimationGroup group; QCOMPARE(group.duration(), 0); QCOMPARE(group.currentLoopTime(), 0); - QAbstractAnimation *anim1 = new QPropertyAnimation; group.addAnimation(anim1); QCOMPARE(group.duration(), 250); QCOMPARE(group.currentLoopTime(), 0); QCOMPARE(group.currentAnimation(), anim1); //let's append an animation - QAbstractAnimation *anim2 = new QPropertyAnimation; group.addAnimation(anim2); QCOMPARE(group.duration(), 500); QCOMPARE(group.currentLoopTime(), 0); QCOMPARE(group.currentAnimation(), anim1); //let's prepend an animation - QAbstractAnimation *anim0 = new QPropertyAnimation; group.insertAnimation(0, anim0); QCOMPARE(group.duration(), 750); QCOMPARE(group.currentLoopTime(), 0); -- cgit v1.2.3