[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