From dd39b64ce4e5c508451be50d770e4b0f63b7e581 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Tue, 12 Jan 2010 20:26:49 +0000 Subject: [PATCH] Fix memory leak in MidiPlayer_Adlib. svn-id: r47276 --- engines/sci/sound/softseq/adlib.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/engines/sci/sound/softseq/adlib.cpp b/engines/sci/sound/softseq/adlib.cpp index 5d0c9bef669..89e2fd8ff34 100644 --- a/engines/sci/sound/softseq/adlib.cpp +++ b/engines/sci/sound/softseq/adlib.cpp @@ -161,7 +161,11 @@ private: class MidiPlayer_Adlib : public MidiPlayer { public: MidiPlayer_Adlib() { _driver = new MidiDriver_Adlib(g_system->getMixer()); } + ~MidiPlayer_Adlib() {} + int open(ResourceManager *resMan); + void close(); + byte getPlayId(SciVersion soundVersion); int getPolyphony() const { return MidiDriver_Adlib::kVoices; } bool hasRhythmChannel() const { return false; } @@ -812,6 +816,14 @@ int MidiPlayer_Adlib::open(ResourceManager *resMan) { return static_cast(_driver)->open(getSciVersion() <= SCI_VERSION_0_LATE); } +void MidiPlayer_Adlib::close() { + if (_driver) { + _driver->close(); + delete _driver; + _driver = 0; + } +} + byte MidiPlayer_Adlib::getPlayId(SciVersion soundVersion) { switch (soundVersion) { case SCI_VERSION_0_EARLY: