diff options
author | Johannes Schickel | 2010-01-12 20:26:49 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-01-12 20:26:49 +0000 |
commit | dd39b64ce4e5c508451be50d770e4b0f63b7e581 (patch) | |
tree | f4718455800740009a1316ba71b1f4fe460840e8 | |
parent | 3578f8d091f55960868a4a36e4b48bf3a03d3659 (diff) | |
download | scummvm-rg350-dd39b64ce4e5c508451be50d770e4b0f63b7e581.tar.gz scummvm-rg350-dd39b64ce4e5c508451be50d770e4b0f63b7e581.tar.bz2 scummvm-rg350-dd39b64ce4e5c508451be50d770e4b0f63b7e581.zip |
Fix memory leak in MidiPlayer_Adlib.
svn-id: r47276
-rw-r--r-- | engines/sci/sound/softseq/adlib.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/sci/sound/softseq/adlib.cpp b/engines/sci/sound/softseq/adlib.cpp index 5d0c9bef66..89e2fd8ff3 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<MidiDriver_Adlib *>(_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: |