Avoid dereferencing invalidated iterator when removing selected regions. Fixes bug...
authorTim Mayberry <mojofunk@gmail.com>
Mon, 10 Sep 2007 00:06:58 +0000 (00:06 +0000)
committerTim Mayberry <mojofunk@gmail.com>
Mon, 10 Sep 2007 00:06:58 +0000 (00:06 +0000)
git-svn-id: svn://localhost/ardour2/trunk@2443 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_ops.cc

index a82ca0260a98d6989a5efd457f08d4e0abb688de..89068370312783e3f001d1f96b594853c5b1ed7e 100644 (file)
@@ -178,8 +178,8 @@ Editor::remove_selected_regions ()
        /* XXX: should be called remove regions if we're removing more than one */
        begin_reversible_command (_("remove region"));
        
-       for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
-               boost::shared_ptr<Region> region = (*i)->region ();
+       while (!selection->regions.empty()) {
+               boost::shared_ptr<Region> region = selection->regions.front()->region ();
                boost::shared_ptr<Playlist> playlist = region->playlist ();
        
                XMLNode &before = playlist->get_state();