[Scummvm-cvs-logs] CVS: scummvm/scumm/smush smush_player.cpp,1.12,1.13

Max Horn fingolfin at users.sourceforge.net
Fri Mar 28 14:43:16 CET 2003


Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1:/tmp/cvs-serv4024

Modified Files:
	smush_player.cpp 
Log Message:
this should fix one of those nasty deadlocks, I hope

Index: smush_player.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- smush_player.cpp	21 Mar 2003 09:18:38 -0000	1.12
+++ smush_player.cpp	28 Mar 2003 22:42:48 -0000	1.13
@@ -189,6 +189,10 @@
 SmushPlayer *player;
 
 void smush_callback(void *ptr) {
+	Scumm *scumm = (Scumm *)ptr;
+	if (scumm->_smushPlay == false)
+		return;
+
 	player->_smushProcessFrame = true;
 	player->parseNextFrame();
 	player->_smushProcessFrame = false;
@@ -252,8 +256,8 @@
 
 void SmushPlayer::deinit() {
 	_scumm->_smushPlay = false;
-	_scumm->_timer->releaseProcedure(&smush_callback);
 	while (_smushProcessFrame) {}
+	_scumm->_timer->releaseProcedure(&smush_callback);
 
 	for(int i = 0; i < 5; i++) {
 		if (_sf[i]) {
@@ -824,9 +828,6 @@
 }
 
 void SmushPlayer::parseNextFrame() {
-	if (_scumm->_smushPlay == false)
-		return;
-
 	Chunk *sub = _base->subBlock();
 	if (_base->eof()) {
 		_scumm->_videoFinished = true;





More information about the Scummvm-git-logs mailing list