[Scummvm-cvs-logs] CVS: scummvm/sound midiparser.cpp,1.10,1.11 midiparser.h,1.12,1.13

Jamieson Christian jamieson630 at users.sourceforge.net
Sun May 25 08:47:04 CEST 2003


Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1:/tmp/cvs-serv25340/sound

Modified Files:
	midiparser.cpp midiparser.h 
Log Message:
Fixed occassional music crashes when loading games.
Thanks to eriktorbjorn for finding this issue.

Index: midiparser.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/midiparser.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- midiparser.cpp	24 May 2003 19:11:49 -0000	1.10
+++ midiparser.cpp	25 May 2003 15:46:47 -0000	1.11
@@ -346,7 +346,7 @@
 		}
 	}
 
-	if (!_smartJump) {
+	if (!_smartJump || !currentPos._play_pos) {
 		allNotesOff();
 	} else {
 		EventInfo targetEvent (_next_event);
@@ -362,4 +362,12 @@
 
 	_abort_parse = true;
 	return true;
+}
+
+void MidiParser::unloadMusic() {
+	resetTracking();
+	allNotesOff();
+	_num_tracks = 0;
+	_active_track = 255;
+	_abort_parse = true;
 }

Index: midiparser.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/midiparser.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- midiparser.h	23 May 2003 15:04:41 -0000	1.12
+++ midiparser.h	25 May 2003 15:46:47 -0000	1.13
@@ -160,7 +160,7 @@
 	virtual ~MidiParser() { allNotesOff(); }
 
 	virtual bool loadMusic (byte *data, uint32 size) = 0;
-	virtual void unloadMusic() = 0;
+	virtual void unloadMusic();
 	virtual void property (int prop, int value);
 
 	void setMidiDriver (MidiDriver *driver) { _driver = driver; }





More information about the Scummvm-git-logs mailing list