summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2015-01-13 22:52:02 +1100
committernick_m <mainsbridge@gmail.com>2015-01-13 22:52:02 +1100
commit5ef868e767dfcc27a1ece9eadbf6366511b9862e (patch)
tree8de790343a97a1c1035ec9fff87a572b9e08190b /gtk2_ardour/midi_region_view.cc
parent7a3662bc14e1fc6cacd6482f46e51b7ed54a6f52 (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.cc14
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;
}
}