diff options
author | nick_m <mainsbridge@gmail.com> | 2015-01-13 22:52:02 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-01-13 22:52:02 +1100 |
commit | 5ef868e767dfcc27a1ece9eadbf6366511b9862e (patch) | |
tree | 8de790343a97a1c1035ec9fff87a572b9e08190b /gtk2_ardour/midi_region_view.cc | |
parent | 7a3662bc14e1fc6cacd6482f46e51b7ed54a6f52 (diff) |
Don't reuse _optimization_iterator - fixes crash on multiple note delete undo.
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r-- | gtk2_ardour/midi_region_view.cc | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index b9660af517..6d4555731f 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -1117,17 +1117,11 @@ MidiRegionView::find_canvas_note (boost::shared_ptr<NoteType> note) NoteBase* MidiRegionView::find_canvas_note (NoteType note) { - if (_optimization_iterator != _events.end()) { - ++_optimization_iterator; - } - - if (_optimization_iterator != _events.end() && (*(*_optimization_iterator)->note()) == note) { - return *_optimization_iterator; - } + Events::iterator it; - for (_optimization_iterator = _events.begin(); _optimization_iterator != _events.end(); ++_optimization_iterator) { - if (*((*_optimization_iterator)->note()) == note) { - return *_optimization_iterator; + for (it = _events.begin(); it != _events.end(); ++it) { + if (*((*it)->note()) == note) { + return *it; } } |