diff options
Diffstat (limited to 'src/quick/util/qquickanimation.cpp')
| -rw-r--r-- | src/quick/util/qquickanimation.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/quick/util/qquickanimation.cpp b/src/quick/util/qquickanimation.cpp index bfdc863d10..f2ee096af7 100644 --- a/src/quick/util/qquickanimation.cpp +++ b/src/quick/util/qquickanimation.cpp @@ -165,17 +165,15 @@ void QQuickAbstractAnimationPrivate::commence() QQuickStateActions actions; QQmlProperties properties; - QAbstractAnimationJob *oldInstance = animationInstance; - animationInstance = q->transition(actions, properties, QQuickAbstractAnimation::Forward); - if (oldInstance && oldInstance != animationInstance) - delete oldInstance; + auto *newInstance = q->transition(actions, properties, QQuickAbstractAnimation::Forward); + Q_ASSERT(newInstance != animationInstance); + delete animationInstance; + animationInstance = newInstance; if (animationInstance) { - if (oldInstance != animationInstance) { - if (q->threadingModel() == QQuickAbstractAnimation::RenderThread) - animationInstance = new QQuickAnimatorProxyJob(animationInstance, q); - animationInstance->addAnimationChangeListener(this, QAbstractAnimationJob::Completion); - } + if (q->threadingModel() == QQuickAbstractAnimation::RenderThread) + animationInstance = new QQuickAnimatorProxyJob(animationInstance, q); + animationInstance->addAnimationChangeListener(this, QAbstractAnimationJob::Completion); emit q->started(); animationInstance->start(); } |
