summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-01-23 02:16:21 +0100
committerRobin Gareus <robin@gareus.org>2015-01-23 02:24:26 +0100
commit14734422042a90fe66d9f83bc81ed9c0a03ff5bb (patch)
tree8767c13e9c9cfda8ab45f304193b2d71cb51631f /gtk2_ardour
parent611073790be6ca3a6c407378eb1e499f77377968 (diff)
fix crash at exit if location-ui was used
LocationEditRow members are destroyed after ~LocationUI() destroys the clock_group. -> segfault in ~LocationEditRow()
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/location_ui.cc4
-rw-r--r--gtk2_ardour/location_ui.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc
index 84529d167f..f56006e5ce 100644
--- a/gtk2_ardour/location_ui.cc
+++ b/gtk2_ardour/location_ui.cc
@@ -839,7 +839,9 @@ LocationUI::LocationUI ()
LocationUI::~LocationUI()
{
- delete _clock_group;
+ loop_edit_row.unset_clock_group ();
+ punch_edit_row.unset_clock_group ();
+ delete _clock_group;
}
gint
diff --git a/gtk2_ardour/location_ui.h b/gtk2_ardour/location_ui.h
index 76dca563fc..b24865b6cc 100644
--- a/gtk2_ardour/location_ui.h
+++ b/gtk2_ardour/location_ui.h
@@ -58,6 +58,7 @@ class LocationEditRow : public Gtk::HBox, public ARDOUR::SessionHandlePtr
void set_number (int);
void focus_name();
void set_clock_group (ClockGroup&);
+ void unset_clock_group () { _clock_group = 0; }
sigc::signal<void,ARDOUR::Location*> remove_requested;
sigc::signal<void> redraw_ranges;