[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_script.cpp,1.15,1.16
Pawel Kolodziejski
aquadran at users.sourceforge.net
Sun Jun 20 13:14:01 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1173/scummvm/scumm/imuse_digi
Modified Files:
dimuse_script.cpp
Log Message:
added exception for insane sounds to prevent deadlock
Index: dimuse_script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_script.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- dimuse_script.cpp 20 Jun 2004 19:19:53 -0000 1.15
+++ dimuse_script.cpp 20 Jun 2004 20:13:01 -0000 1.16
@@ -163,19 +163,23 @@
debug(5, "flushTracks()");
for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) {
Track *track = _track[l];
- if (track->used && track->readyToRemove) {
- if (track->stream) {
+ if (track->used &&
+ (track->readyToRemove || (!_vm->_videoFinished && track->toBeRemoved))) {
+ if ((track->stream) && (!track->stream->endOfStream())) {
track->stream->finish();
- track->stream = NULL;
+ } else if ((track->stream) && (track->stream->endOfStream())) {
_vm->_mixer->stopHandle(track->handle);
+ delete track->stream;
+ track->stream = NULL;
_sound->closeSound(track->soundHandle);
track->soundHandle = NULL;
+ track->used = false;
} else if (track->stream2) {
_vm->_mixer->stopHandle(track->handle);
delete track->stream2;
track->stream2 = NULL;
+ track->used = false;
}
- track->used = false;
}
}
}
@@ -385,4 +389,3 @@
}
} // End of namespace Scumm
-
More information about the Scummvm-git-logs
mailing list