diff options
author | Aapo Haapanen <ext-aapo.haapanen@nokia.com> | 2012-05-16 16:57:03 +0300 |
---|---|---|
committer | Aapo Haapanen <ext-aapo.haapanen@nokia.com> | 2012-05-22 15:31:58 +0300 |
commit | 89ae775c72351f3346756d10025cb1cf93d22dab (patch) | |
tree | 0eb5280e3156a91d83b62b26dae0f312dea7b9db | |
parent | 4e61c504042721f58c7b65faf710fb6434d1ced9 (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.cpp | 7 |
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()) { |