diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-02-21 19:11:14 +0100 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-02-21 19:11:14 +0100 |
commit | 2926555e295ea39904a0127d776a5c5b1531141f (patch) | |
tree | 5cb9dc2b65e3bfcbe7b68bfa1f6aa0c5d6d97685 | |
parent | db7cf8ef1443e102e05d3ac99e9f8f4167c18286 (diff) |
fix crash when removing a TimeAxisView from the selection
-rw-r--r-- | gtk2_ardour/selection.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc index 298889e329..6ed7a10434 100644 --- a/gtk2_ardour/selection.cc +++ b/gtk2_ardour/selection.cc @@ -648,8 +648,14 @@ Selection::remove (TimeAxisView* track) { list<TimeAxisView*>::iterator i; if ((i = find (tracks.begin(), tracks.end(), track)) != tracks.end()) { - track->set_selected (false); + /* erase first, because set_selected() will remove the track + from the selection, invalidating the iterator. + + In fact, we don't really even need to do the erase, but this is + a hangover of axis view selection being in the GUI. + */ tracks.erase (i); + track->set_selected (false); } } |