summaryrefslogtreecommitdiff
path: root/libs/ardour/location.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/location.cc')
-rw-r--r--libs/ardour/location.cc10
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;
{