summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_streamview.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-10-21 16:39:39 +0000
committerDavid Robillard <d@drobilla.net>2009-10-21 16:39:39 +0000
commit86a09c58e3e0e66b1e3525680327545f2b5372c6 (patch)
treebe62fa176b2ad54dd8e33fc2e7cc3b9bb6277b04 /gtk2_ardour/midi_streamview.cc
parent2c59ddede5a4b6c1b9227e2a0288561b38f0763f (diff)
Fix O(n) search on MIDI rec region update (now O(log(n)) per update, but could be O(1) with caching...)
git-svn-id: svn://localhost/ardour2/branches/3.0@5843 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_streamview.cc')
-rw-r--r--gtk2_ardour/midi_streamview.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc
index 537c4cb725..9d87738354 100644
--- a/gtk2_ardour/midi_streamview.cc
+++ b/gtk2_ardour/midi_streamview.cc
@@ -575,12 +575,12 @@ MidiStreamView::update_rec_regions (boost::shared_ptr<MidiModel> data, nframes_t
rect->property_x2() = xend;
ARDOUR::BeatsFramesConverter tconv(_trackview.session(), region->position());
+ const MidiModel::TimeType start_beats = tconv.from(start);
/* draw events */
MidiRegionView* mrv = (MidiRegionView*)iter->second;
- // FIXME: this is offensively slow (linear search)
- for (MidiModel::Notes::const_iterator i = data->notes().begin();
+ for (MidiModel::Notes::const_iterator i = data->note_lower_bound(start_beats);
i != data->notes().end(); ++i) {
const boost::shared_ptr<MidiRegionView::NoteType>& note = *i;