diff options
Diffstat (limited to 'libs/ardour/location.cc')
-rw-r--r-- | libs/ardour/location.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc index b46972ef2e..e09a59d42f 100644 --- a/libs/ardour/location.cc +++ b/libs/ardour/location.cc @@ -420,17 +420,19 @@ Locations::clear () { { Glib::Mutex::Lock lm (lock); - LocationList::iterator tmp; + for (LocationList::iterator i = locations.begin(); i != locations.end(); ) { - tmp = i; + + LocationList::iterator tmp = i; ++tmp; + if (!(*i)->is_end() && !(*i)->is_start()) { locations.erase (i); } + i = tmp; } - locations.clear (); current_location = 0; } @@ -579,7 +581,7 @@ Locations::set_state (const XMLNode& node) nlist = node.children(); - locations.clear (); // dangerous + locations.clear (); current_location = 0; { |