From 4f7a4cd23331d64acfabc52e978dcb3dde2e82ec Mon Sep 17 00:00:00 2001 From: nick_m Date: Wed, 13 Apr 2016 05:38:31 +1000 Subject: Crapola - this is an experimental performance hack that must be reverted. --- libs/ardour/playlist.cc | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'libs/ardour') diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 3301fe9f9e..2e96dee063 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -1822,6 +1822,7 @@ Playlist::regions_at (framepos_t frame) for (RegionList::iterator i = rlist->begin(); i != rlist->end(); ) { RegionList::iterator tmp = i; + ++tmp; if ((*i)->muted()) { @@ -2047,23 +2048,25 @@ Playlist::find_next_region (framepos_t frame, RegionPoint point, int dir) boost::shared_ptr r = (*i); frameoffset_t distance; + const framepos_t first_frame = r->first_frame(); + const framepos_t last_frame = r->last_frame(); - if (r->first_frame() > frame) { + if (first_frame > frame) { - distance = r->first_frame() - frame; + distance = first_frame - frame; if (distance < closest) { - ret = r->first_frame(); + ret = first_frame; closest = distance; } } - if (r->last_frame () > frame) { + if (last_frame > frame) { - distance = r->last_frame () - frame; + distance = last_frame - frame; if (distance < closest) { - ret = r->last_frame (); + ret = last_frame; closest = distance; } } @@ -2075,23 +2078,25 @@ Playlist::find_next_region (framepos_t frame, RegionPoint point, int dir) boost::shared_ptr r = (*i); frameoffset_t distance; + const framepos_t first_frame = r->first_frame(); + const framepos_t last_frame = r->last_frame(); - if (r->last_frame() < frame) { + if (last_frame < frame) { - distance = frame - r->last_frame(); + distance = frame - last_frame; if (distance < closest) { - ret = r->last_frame(); + ret = last_frame; closest = distance; } } - if (r->first_frame() < frame) { + if (first_frame < frame) { - distance = frame - r->first_frame(); + distance = frame - first_frame; if (distance < closest) { - ret = r->first_frame(); + ret = first_frame; closest = distance; } } @@ -2899,6 +2904,7 @@ Playlist::update_after_tempo_map_change () } thaw (); + notify_contents_changed(); } void -- cgit v1.2.3