From b934cf056e3875a13af48eefe519cffe1332cde2 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <albert.astals.cid@kdab.com>
Date: Thu, 8 Jun 2017 16:55:25 +0200
Subject: [PATCH] Prevent m_runningCount from eventually overflowing

When m_loopCount is Infinite (i.e. -1) m_runningCount would go from -2
and down, eventuall wrapping and reaching 0 and thus stopping.

This is a theorical problem since even if we had a 1 second video it would
take lots of years to trigger but i guess it's better than
having the value of m_runningCount be unbounded

Change-Id: I340ec2157ece3334e58ab4afd77c34b478a256e9
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
---
 src/imports/multimedia/qdeclarativeaudio.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/imports/multimedia/qdeclarativeaudio.cpp b/src/imports/multimedia/qdeclarativeaudio.cpp
index fc13323e8..652296509 100644
--- a/src/imports/multimedia/qdeclarativeaudio.cpp
+++ b/src/imports/multimedia/qdeclarativeaudio.cpp
@@ -900,7 +900,7 @@ void QDeclarativeAudio::componentComplete()
 void QDeclarativeAudio::_q_statusChanged()
 {
     if (m_player->mediaStatus() == QMediaPlayer::EndOfMedia && m_runningCount != 0) {
-        m_runningCount -= 1;
+        m_runningCount = std::max(m_runningCount - 1, -2);
         m_player->play();
     }
     const QMediaPlayer::MediaStatus oldStatus = m_status;
-- 
GitLab