summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAapo Haapanen <ext-aapo.haapanen@nokia.com>2012-05-16 16:57:03 +0300
committerAapo Haapanen <ext-aapo.haapanen@nokia.com>2012-05-22 15:31:58 +0300
commit89ae775c72351f3346756d10025cb1cf93d22dab (patch)
tree0eb5280e3156a91d83b62b26dae0f312dea7b9db
parent4e61c504042721f58c7b65faf710fb6434d1ced9 (diff)
Fix a crash in S60MediaPlayerControl::setMedia
When S60MediaPlayerControl::setMedia is called, a new S60MediaPlayerSession is created and the old one is deleted. This can cause problems if setMedia is called as a result of a signal from the session. Change the deletion of old session to deleteLater() to avoid this problem. Task-number: ou1cimx1#993581 Reviewed-by: Juha Kukkonen
-rw-r--r--plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp
index 6b88198706..e82045e439 100644
--- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp
+++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp
@@ -211,9 +211,10 @@ void S60MediaPlayerControl::setMedia(const QMediaContent &source, QIODevice *str
m_session->load(source);
} else {
if (!source.canonicalUrl().isEmpty()) {
- delete m_session;
- m_session = 0;
- m_session = m_service->createPlayerSession(source);
+ m_session->disconnect();
+ m_session->deleteLater();
+ m_session = 0;
+ m_session = m_service->createPlayerSession(source);
}
QMediaPlayer::MediaStatus mediaStatus = QMediaPlayer::NoMedia;
if (m_session && !source.canonicalUrl().isEmpty()) {