diff options
author | Florian Jung <flo@windfisch.org> | 2011-10-03 15:25:12 +0000 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2011-10-03 15:25:12 +0000 |
commit | 421cb6dbce48a6c1044dd37e8f710b83db5d11a9 (patch) | |
tree | 59a751bf904e6addff34b673f3025f5be8ec5c59 /muse2/synti/fluidsynth/fluidsynti.cpp | |
parent | 890ee8999eaca679fa1874adf3f572f365138e29 (diff) | |
parent | f3313cc78e637ec9bc11efce5eb943434da93416 (diff) |
merged with trunk, removed more memory leaks
Diffstat (limited to 'muse2/synti/fluidsynth/fluidsynti.cpp')
-rw-r--r-- | muse2/synti/fluidsynth/fluidsynti.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/muse2/synti/fluidsynth/fluidsynti.cpp b/muse2/synti/fluidsynth/fluidsynti.cpp index a03c5da8..cc5c496a 100644 --- a/muse2/synti/fluidsynth/fluidsynti.cpp +++ b/muse2/synti/fluidsynth/fluidsynti.cpp @@ -115,6 +115,17 @@ FluidSynth::FluidSynth(int sr, pthread_mutex_t *_Globalsfloader_mutex) : Mess(2) FluidSynth::~FluidSynth() { + + for (std::list<FluidSoundFont>::iterator it =stack.begin(); it !=stack.end(); it++) + { + if(it->intid == FS_UNSPECIFIED_FONT || it->intid == FS_UNSPECIFIED_ID) + continue; + //Try to unload soundfont + int err = fluid_synth_sfunload(fluidsynth, it->intid, 0); + if(err == -1) + std::cerr << DEBUG_ARGS << "Error unloading soundfont!" << fluid_synth_error(fluidsynth) << std::endl; + } + int err = delete_fluid_synth (fluidsynth); if(gui) delete gui; |