[SCM] calf/master: Do not crash when config has been changed after a plugin window has been closed.

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:40:21 UTC 2013


The following commit has been merged in the master branch:
commit 84dd6a699d0fe7f2114ec99cda96665f977ea6f1
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Sat Sep 11 13:33:02 2010 +0100

    Do not crash when config has been changed after a plugin window has been closed.

diff --git a/src/calf/gui.h b/src/calf/gui.h
index 82b1dd3..68c1f39 100644
--- a/src/calf/gui.h
+++ b/src/calf/gui.h
@@ -196,6 +196,8 @@ struct main_window_owner_iface
 
 class plugin_gui_window: public calf_utils::config_listener_iface
 {
+private:
+    void cleanup();
 public:
     plugin_gui *gui;
     GtkWindow *toplevel;
diff --git a/src/gui.cpp b/src/gui.cpp
index 1a7e85b..5e5b8bc 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -652,7 +652,7 @@ void plugin_gui_window::on_config_change()
     gui->show_rack_ears(environment->get_config()->rack_ears);
 }
 
-void plugin_gui_window::close()
+void plugin_gui_window::cleanup()
 {
     if (notifier)
     {
@@ -662,15 +662,19 @@ void plugin_gui_window::close()
     if (source_id)
         g_source_remove(source_id);
     source_id = 0;
+}
+
+void plugin_gui_window::close()
+{
+    cleanup();
     gtk_widget_destroy(GTK_WIDGET(toplevel));
 }
 
 plugin_gui_window::~plugin_gui_window()
 {
-    if (source_id)
-        g_source_remove(source_id);
     if (main)
         main->set_window(gui->plugin, NULL);
+    cleanup();
     delete gui;
 }
 

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list