summaryrefslogtreecommitdiff
path: root/libs/ardour/diskstream.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-06-21 22:04:06 +1000
committernick_m <mainsbridge@gmail.com>2016-07-10 02:18:37 +1000
commit95ba43916f5e7e3421adf2629b3eae5fe63fe5de (patch)
treed1f28bcbcedd7882db71b4f39980140f020a44e6 /libs/ardour/diskstream.cc
parent7a6efaaf3d074dd2c707537089e0c24356ce5790 (diff)
Improve performance of automation range moves.
Diffstat (limited to 'libs/ardour/diskstream.cc')
-rw-r--r--libs/ardour/diskstream.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/diskstream.cc b/libs/ardour/diskstream.cc
index 3ca463189c..6eac0c1cd9 100644
--- a/libs/ardour/diskstream.cc
+++ b/libs/ardour/diskstream.cc
@@ -568,7 +568,9 @@ Diskstream::playlist_ranges_moved (list< Evoral::RangeMove<framepos_t> > const &
continue;
}
boost::shared_ptr<AutomationList> alist = ac->alist();
-
+ if (!alist->size()) {
+ continue;
+ }
XMLNode & before = alist->get_state ();
bool const things_moved = alist->move_ranges (movements);
if (things_moved) {
@@ -598,6 +600,9 @@ Diskstream::move_processor_automation (boost::weak_ptr<Processor> p, list< Evora
for (set<Evoral::Parameter>::const_iterator i = a.begin (); i != a.end (); ++i) {
boost::shared_ptr<AutomationList> al = processor->automation_control(*i)->alist();
+ if (!al->size()) {
+ continue;
+ }
XMLNode & before = al->get_state ();
bool const things_moved = al->move_ranges (movements);
if (things_moved) {