From c683dd150c0c66bc54f868a1ba506983da7db940 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sun, 16 Mar 2008 13:10:32 +0000 Subject: [PATCH] proper cleanup of fxMixer and it's view at exit git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@797 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 10 ++++++++++ src/core/engine.cpp | 6 ++++++ src/core/fx_mixer.cpp | 9 +++++++++ 3 files changed, 25 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1dbd0fb55..bcff99a8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-03-16 Tobias Doerffel + + * src/core/engine.cpp: + * src/core/fx_mixer.cpp: + proper cleanup of fxMixer and its view at exit + + * src/widgets/effect_view.cpp: + * data/themes/default/effect_plugin.png: + improved effect-view-artwork + 2008-03-15 Tobias Doerffel * src/core/mixer.cpp: diff --git a/src/core/engine.cpp b/src/core/engine.cpp index 6dddae1a4..775808db5 100644 --- a/src/core/engine.cpp +++ b/src/core/engine.cpp @@ -117,6 +117,12 @@ void engine::destroy( void ) s_pianoRoll = NULL; delete s_automationEditor; s_automationEditor = NULL; + + delete s_fxMixerView; + s_fxMixerView = NULL; + delete s_fxMixer; + s_fxMixer = NULL; + delete s_ladspaManager; presetPreviewPlayHandle::cleanUp(); diff --git a/src/core/fx_mixer.cpp b/src/core/fx_mixer.cpp index 7a68eb4f2..07c4a6dcc 100644 --- a/src/core/fx_mixer.cpp +++ b/src/core/fx_mixer.cpp @@ -60,6 +60,10 @@ struct fxChannel engine::getMixer()->clearAudioBuffer( m_buffer, engine::getMixer()->framesPerPeriod() ); } + ~fxChannel() + { + delete[] m_buffer; + } effectChain m_fxChain; bool m_used; @@ -71,6 +75,7 @@ struct fxChannel floatModel m_volumeModel; QString m_name; QMutex m_lock; + } ; @@ -92,6 +97,10 @@ fxMixer::fxMixer() : fxMixer::~fxMixer() { + for( int i = 0; i < NUM_FX_CHANNELS+1; ++i ) + { + delete m_fxChannels[i]; + } }