diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-03-15 15:31:41 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-03-15 15:35:11 -0400 |
commit | 08f9a439a7d7afae35f2345973ef5ebcd552eb6a (patch) | |
tree | 2a13c38443defc330d8f26198ed9d5a85460f17c /gtk2_ardour | |
parent | 71c6cbecdacd6355a9f72baa587289c47cb96a7f (diff) |
fix segfaults/crashes when quitting under valgrind
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 20 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_dialogs.cc | 4 |
2 files changed, 12 insertions, 12 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 5f2e8738f6..86a01e26aa 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -663,16 +663,16 @@ ARDOUR_UI::~ARDOUR_UI () if (getenv ("ARDOUR_RUNNING_UNDER_VALGRIND")) { // don't bother at 'real' exit. the OS cleans up for us. - delete big_clock; - delete primary_clock; - delete secondary_clock; - delete _process_thread; - delete meterbridge; - delete luawindow; - delete editor; - delete mixer; - delete nsm; - delete gui_object_state; + delete big_clock; big_clock = 0; + delete primary_clock; primary_clock = 0; + delete secondary_clock; secondary_clock = 0; + delete _process_thread; _process_thread = 0; + delete meterbridge; meterbridge = 0; + delete luawindow; luawindow = 0; + delete editor; editor = 0; + delete mixer; mixer = 0; + delete nsm; nsm = 0; + delete gui_object_state; gui_object_state = 0; FastMeter::flush_pattern_cache (); PixFader::flush_pattern_cache (); } diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 64037e843e..b112418474 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -577,7 +577,7 @@ ARDOUR_UI::tabs_page_removed (Widget*, guint) void ARDOUR_UI::tabs_switch (GtkNotebookPage*, guint page) { - if (page == (guint) _tabs.page_num (editor->contents())) { + if (editor && (page == (guint) _tabs.page_num (editor->contents()))) { editor_visibility_button.set_active_state (Gtkmm2ext::ImplicitActive); if (mixer && (mixer->tabbed() || mixer->tabbed_by_default())) { mixer_visibility_button.set_active_state (Gtkmm2ext::Off); @@ -585,7 +585,7 @@ ARDOUR_UI::tabs_switch (GtkNotebookPage*, guint page) if (rc_option_editor && (rc_option_editor->tabbed() || rc_option_editor->tabbed_by_default())) { prefs_visibility_button.set_active_state (Gtkmm2ext::Off); } - } else if (page == (guint) _tabs.page_num (mixer->contents())) { + } else if (mixer && (page == (guint) _tabs.page_num (mixer->contents()))) { if (editor && (editor->tabbed() || editor->tabbed_by_default())) { editor_visibility_button.set_active_state (Gtkmm2ext::Off); } |