From 13b8f678fc0ee6ab14e3264c58e858061fe625fd Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 9 Mar 2005 16:37:44 +0000 Subject: Fix one potential race condition between SMUSH and INSANE svn-id: r17051 --- scumm/smush/smush_player.cpp | 5 +++++ scumm/smush/smush_player.h | 2 ++ 2 files changed, 7 insertions(+) (limited to 'scumm/smush') diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index 162b87ee95..236efd0d6a 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -1024,6 +1024,8 @@ void SmushPlayer::setupAnim(const char *file) { } void SmushPlayer::parseNextFrame() { + Common::StackLock lock(_mutex); + if (_vm->_smushPaused) return; @@ -1138,6 +1140,9 @@ void SmushPlayer::insanity(bool flag) { } void SmushPlayer::seekSan(const char *file, int32 pos, int32 contFrame) { + + Common::StackLock lock(_mutex); + if(_smixer) _smixer->stop(); diff --git a/scumm/smush/smush_player.h b/scumm/smush/smush_player.h index 9eb3031af0..eeb99a2d4f 100644 --- a/scumm/smush/smush_player.h +++ b/scumm/smush/smush_player.h @@ -80,6 +80,8 @@ private: bool _inTimer; #endif + Common::Mutex _mutex; + public: SmushPlayer(ScummEngine_v6 *scumm, int speed); ~SmushPlayer(); -- cgit v1.2.3