[Scummvm-cvs-logs] SF.net SVN: scummvm: [32129] scummvm/branches/gsoc2008-rtl/engines/agos

cpage88 at users.sourceforge.net cpage88 at users.sourceforge.net
Thu May 15 01:26:32 CEST 2008


Revision: 32129
          http://scummvm.svn.sourceforge.net/scummvm/?rev=32129&view=rev
Author:   cpage88
Date:     2008-05-14 16:26:32 -0700 (Wed, 14 May 2008)

Log Message:
-----------
Fixed memory leak when returning to launcher in AGOS engine by properly creating and deleting midi driver pointer

Modified Paths:
--------------
    scummvm/branches/gsoc2008-rtl/engines/agos/agos.cpp
    scummvm/branches/gsoc2008-rtl/engines/agos/agos.h

Modified: scummvm/branches/gsoc2008-rtl/engines/agos/agos.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/engines/agos/agos.cpp	2008-05-14 21:52:52 UTC (rev 32128)
+++ scummvm/branches/gsoc2008-rtl/engines/agos/agos.cpp	2008-05-14 23:26:32 UTC (rev 32129)
@@ -558,14 +558,17 @@
 		// Setup midi driver
 		int midiDriver = MidiDriver::detectMusicDriver(MDT_ADLIB | MDT_MIDI);
 		_nativeMT32 = ((midiDriver == MD_MT32) || ConfMan.getBool("native_mt32"));
-		MidiDriver *driver = MidiDriver::createMidi(midiDriver);
+		
+		_driver = MidiDriver::createMidi(midiDriver);
+
 		if (_nativeMT32) {
-			driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
+			_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
 		}
 
 		_midi.mapMT32toGM (getGameType() != GType_SIMON2 && !_nativeMT32);
 
-		_midi.setDriver(driver);
+		_midi.setDriver(_driver);
+
 		int ret = _midi.open();
 		if (ret)
 			warning("MIDI Player init failed: \"%s\"", _midi.getErrorName (ret));
@@ -877,6 +880,7 @@
 		delete _gameFile;
 
 	_midi.close();
+	delete _driver;
 
 	for (uint i = 0; i < _itemHeap.size(); i++) {
 		delete[] _itemHeap[i];
@@ -1015,6 +1019,7 @@
 		delete _gameFile;
 
 	_midi.close();
+	delete _driver;
 
 	for (uint i = 0; i < _itemHeap.size(); i++) {
 		delete[] _itemHeap[i];

Modified: scummvm/branches/gsoc2008-rtl/engines/agos/agos.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/engines/agos/agos.h	2008-05-14 21:52:52 UTC (rev 32128)
+++ scummvm/branches/gsoc2008-rtl/engines/agos/agos.h	2008-05-14 23:26:32 UTC (rev 32129)
@@ -523,6 +523,7 @@
 	byte _lettersToPrintBuf[80];
 
 	MidiPlayer _midi;
+	MidiDriver *_driver;
 	bool _midiEnabled;
 	bool _nativeMT32;
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list