From 114c9a16e240558a8aea2004696369e78ef5ac80 Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@digia.com>
Date: Tue, 28 May 2013 10:35:23 +0200
Subject: [PATCH] Animations: Avoid accessing invalid memory if stop() triggers
 deletion

Return immediately if calling stop() results in the current object being
deleted.

Task-number: QTBUG-31247
Change-Id: I684a858bfb4cc53f415daa8cc1c4df96067daa1c
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
---
 src/qml/animations/qsequentialanimationgroupjob.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/qml/animations/qsequentialanimationgroupjob.cpp b/src/qml/animations/qsequentialanimationgroupjob.cpp
index c649370680..b82e1850f7 100644
--- a/src/qml/animations/qsequentialanimationgroupjob.cpp
+++ b/src/qml/animations/qsequentialanimationgroupjob.cpp
@@ -226,14 +226,14 @@ void QSequentialAnimationGroupJob::updateCurrentTime(int currentTime)
         if (atEnd()) {
             //we make sure that we don't exceed the duration here
             m_currentTime += m_currentAnimation->currentTime() - newCurrentTime;
-            stop();
+            RETURN_IF_DELETED(stop());
         }
     } else {
         //the only case where currentAnimation could be null
         //is when all animations have been removed
         Q_ASSERT(!firstChild());
         m_currentTime = 0;
-        stop();
+        RETURN_IF_DELETED(stop());
     }
 
     m_previousLoop = m_currentLoop;
-- 
GitLab