Mixer: Fix an invalid read on strip destruction due to a missing lock.
parent
219c3b1e9b
commit
080100d3b4
|
@ -94,6 +94,7 @@ Mixer_Strip::~Mixer_Strip ( )
|
||||||
{
|
{
|
||||||
DMESSAGE( "Destroying mixer strip" );
|
DMESSAGE( "Destroying mixer strip" );
|
||||||
|
|
||||||
|
_chain->engine()->lock();
|
||||||
|
|
||||||
/* make sure this gets destroyed before the chain */
|
/* make sure this gets destroyed before the chain */
|
||||||
fader_tab->clear();
|
fader_tab->clear();
|
||||||
|
|
|
@ -71,12 +71,14 @@ Module::Module ( ) : Fl_Group( 0, 0, 50, 50, "Unnamed" )
|
||||||
|
|
||||||
Module::~Module ( )
|
Module::~Module ( )
|
||||||
{
|
{
|
||||||
|
/* we assume that the engine for this chain is already locked */
|
||||||
|
|
||||||
if ( _editor )
|
if ( _editor )
|
||||||
{
|
{
|
||||||
delete _editor;
|
delete _editor;
|
||||||
_editor = NULL;
|
_editor = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( unsigned int i = 0; i < audio_input.size(); ++i )
|
for ( unsigned int i = 0; i < audio_input.size(); ++i )
|
||||||
audio_input[i].disconnect();
|
audio_input[i].disconnect();
|
||||||
for ( unsigned int i = 0; i < audio_output.size(); ++i )
|
for ( unsigned int i = 0; i < audio_output.size(); ++i )
|
||||||
|
|
Loading…
Reference in New Issue