fix crash at session close/exit if a midi-control-surface is used
The "real" problem was that MidiControlUI is destroyed while there are still MIDIControllables around that still have a signal connection to a Controllable: controllable->Destroyed(..., MidiControlUI::instance()) If a Contrallable is deleted after the MidiControlUI event loop is gone, the Destroyed() signal can create odd situations...
This commit is contained in:
parent
01974b5769
commit
f3f80900f1
|
@ -490,7 +490,6 @@ Session::destroy ()
|
|||
delete _butler;
|
||||
_butler = 0;
|
||||
|
||||
delete midi_control_ui;
|
||||
delete _all_route_group;
|
||||
|
||||
DEBUG_TRACE (DEBUG::Destruction, "delete route groups\n");
|
||||
|
@ -567,6 +566,7 @@ Session::destroy ()
|
|||
playlists.reset ();
|
||||
|
||||
delete _scene_changer; _scene_changer = 0;
|
||||
delete midi_control_ui; midi_control_ui = 0;
|
||||
|
||||
delete _mmc; _mmc = 0;
|
||||
delete _midi_ports; _midi_ports = 0;
|
||||
|
|
|
@ -597,6 +597,7 @@ Session::send_song_position_pointer (framepos_t)
|
|||
int
|
||||
Session::start_midi_thread ()
|
||||
{
|
||||
if (midi_control_ui) { return 0; }
|
||||
midi_control_ui = new MidiControlUI (*this);
|
||||
midi_control_ui->run ();
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue