summaryrefslogtreecommitdiff
path: root/gtk2_ardour/group_tabs.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-05-14 11:59:15 +0200
committerRobin Gareus <robin@gareus.org>2017-05-14 12:00:19 +0200
commit3aa3413944c2af67fe90b77e49d650c8517c308e (patch)
treea820a4b32fcb4b767a1c3a88520ab288608d7b48 /gtk2_ardour/group_tabs.cc
parent3d26a29e8a2ed1286091fda2dd480bf5bbebe365 (diff)
Fix use-after free (signal after deleting group)
Diffstat (limited to 'gtk2_ardour/group_tabs.cc')
-rw-r--r--gtk2_ardour/group_tabs.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/gtk2_ardour/group_tabs.cc b/gtk2_ardour/group_tabs.cc
index 3adce69bf9..8f076fe84e 100644
--- a/gtk2_ardour/group_tabs.cc
+++ b/gtk2_ardour/group_tabs.cc
@@ -745,10 +745,10 @@ GroupTabs::set_activation (RouteGroup* g, bool a)
void
GroupTabs::remove_group (RouteGroup* g)
{
- RouteList rl (*(g->route_list().get()));
+ boost::shared_ptr<RouteList> rl (g->route_list ());
_session->remove_route_group (*g);
- emit_gui_changed_for_members (g);
+ emit_gui_changed_for_members (rl);
}
/** Set the color of the tab of a route group */
@@ -822,7 +822,7 @@ GroupTabs::route_group_property_changed (RouteGroup* rg)
for our routes.
*/
- emit_gui_changed_for_members (rg);
+ emit_gui_changed_for_members (rg->route_list ());
set_dirty ();
}
@@ -858,11 +858,11 @@ GroupTabs::route_removed_from_route_group (RouteGroup*, boost::weak_ptr<Route> w
}
void
-GroupTabs::emit_gui_changed_for_members (RouteGroup* rg)
+GroupTabs::emit_gui_changed_for_members (boost::shared_ptr<RouteList> rl)
{
PresentationInfo::ChangeSuspender cs;
- for (RouteList::iterator i = rg->route_list()->begin(); i != rg->route_list()->end(); ++i) {
+ for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
(*i)->presentation_info().PropertyChanged (Properties::color);
}
}