aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2009-12-28 10:27:56 +0000
committerFilippos Karapetis2009-12-28 10:27:56 +0000
commitf93537b2e5fc65e397554024f2869d31666eeb1f (patch)
treecf535e9b0aee2c0f4bde78a89f0d1a0430002cac
parent84569c47920f3d51c538b5d1525a20ef0bdf79fd (diff)
downloadscummvm-rg350-f93537b2e5fc65e397554024f2869d31666eeb1f.tar.gz
scummvm-rg350-f93537b2e5fc65e397554024f2869d31666eeb1f.tar.bz2
scummvm-rg350-f93537b2e5fc65e397554024f2869d31666eeb1f.zip
SCI/new music code: Fixed a race condition when removing a sound from the playlist
svn-id: r46668
-rw-r--r--engines/sci/sfx/music.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/engines/sci/sfx/music.cpp b/engines/sci/sfx/music.cpp
index 9414abfdb7..8094cbc5d8 100644
--- a/engines/sci/sfx/music.cpp
+++ b/engines/sci/sfx/music.cpp
@@ -444,8 +444,6 @@ void SciMusic::soundSetPriority(MusicEntry *pSnd, byte prio) {
}
//---------------------------------------------
void SciMusic::soundKill(MusicEntry *pSnd) {
- Common::StackLock lock(_mutex);
-
pSnd->status = kSndStatusStopped;
if (pSnd->pMidiParser) {
@@ -458,6 +456,8 @@ void SciMusic::soundKill(MusicEntry *pSnd) {
pSnd->pStreamAud = NULL;
}
+ Common::StackLock lock(_mutex);
+
uint sz = _playList.size(), i;
// Remove sound from playlist
for (i = 0; i < sz; i++) {