[Scummvm-cvs-logs] CVS: scummvm/sound midiparser_smf.cpp,1.12,1.13 midiparser_xmidi.cpp,1.11,1.12

Jamieson Christian jamieson630 at users.sourceforge.net
Sun May 25 09:07:01 CEST 2003


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

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

Index: midiparser_smf.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/midiparser_smf.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- midiparser_smf.cpp	23 May 2003 04:54:45 -0000	1.12
+++ midiparser_smf.cpp	25 May 2003 15:47:06 -0000	1.13
@@ -34,7 +34,6 @@
 
 class MidiParser_SMF : public MidiParser {
 protected:
-	byte *_data;
 	byte *_buffer;
 	bool _malformedPitchBends;
 
@@ -43,11 +42,10 @@
 	void parseNextEvent (EventInfo &info);
 
 public:
-	MidiParser_SMF() : _data(0), _buffer(0), _malformedPitchBends(false) {}
+	MidiParser_SMF() : _buffer(0), _malformedPitchBends(false) {}
 	~MidiParser_SMF();
 
 	bool loadMusic (byte *data, uint32 size);
-	void unloadMusic();
 	void property (int property, int value);
 };
 
@@ -235,11 +233,8 @@
 	if (midi_type == 1) {
 		_buffer = (byte *) calloc (size, 1);
 		compressToType0();
-		_data = _buffer;
 		_num_tracks = 1;
 		_tracks[0] = _buffer;
-	} else {
-		_data = data;
 	}
 
 	// Note that we assume the original data passed in
@@ -365,14 +360,6 @@
 	}
 
 	*output++ = 0x00;
-}
-
-void MidiParser_SMF::unloadMusic() {
-	resetTracking();
-	allNotesOff();
-	_data = 0;
-	_num_tracks = 0;
-	_active_track = 255;
 }
 
 MidiParser *MidiParser::createParser_SMF() { return new MidiParser_SMF; }

Index: midiparser_xmidi.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/midiparser_xmidi.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- midiparser_xmidi.cpp	23 May 2003 04:54:45 -0000	1.11
+++ midiparser_xmidi.cpp	25 May 2003 15:47:06 -0000	1.12
@@ -34,7 +34,6 @@
 
 class MidiParser_XMIDI : public MidiParser {
 protected:
-	byte *_data;
 	NoteTimer _notes_cache[32];
 	uint32 _inserted_delta; // Track simulated deltas for note-off events
 
@@ -44,11 +43,10 @@
 	void parseNextEvent (EventInfo &info);
 
 public:
-	MidiParser_XMIDI() : _data(0), _inserted_delta(0) {}
+	MidiParser_XMIDI() : _inserted_delta(0) {}
 	~MidiParser_XMIDI() { }
 
 	bool loadMusic (byte *data, uint32 size);
-	void unloadMusic();
 };
 
 
@@ -274,7 +272,6 @@
 		// Note that we assume the original data passed in
 		// will persist beyond this call, i.e. we do NOT
 		// copy the data to our own buffer. Take warning....
-		_data = data;
 		_ppqn = 60;
 		resetTracking();
 		setTempo (500000);
@@ -284,15 +281,6 @@
 	}
 
 	return false;
-}
-
-void MidiParser_XMIDI::unloadMusic() {
-	resetTracking();
-	allNotesOff();
-	_inserted_delta = 0;
-	_data = 0;
-	_num_tracks = 0;
-	_active_track = 255;
 }
 
 void MidiParser_XMIDI::resetTracking() {





More information about the Scummvm-git-logs mailing list