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:
Robin Gareus 2014-09-11 19:29:55 +02:00
parent 01974b5769
commit f3f80900f1
2 changed files with 2 additions and 1 deletions

View File

@ -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;

View File

@ -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;