From 5ef868e767dfcc27a1ece9eadbf6366511b9862e Mon Sep 17 00:00:00 2001 From: nick_m Date: Tue, 13 Jan 2015 22:52:02 +1100 Subject: [PATCH] Don't reuse _optimization_iterator - fixes crash on multiple note delete undo. --- gtk2_ardour/midi_region_view.cc | 14 ++++---------- 1 file 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 note) NoteBase* MidiRegionView::find_canvas_note (NoteType note) { - if (_optimization_iterator != _events.end()) { - ++_optimization_iterator; - } + Events::iterator it; - if (_optimization_iterator != _events.end() && (*(*_optimization_iterator)->note()) == note) { - return *_optimization_iterator; - } - - 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; } }