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]; + } }