← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~mterry/dbusmenu/disconnect-more-signals into lp:dbusmenu

 

Michael Terry has proposed merging lp:~mterry/dbusmenu/disconnect-more-signals into lp:dbusmenu.

Requested reviews:
  DBus Menu Team (dbusmenu-team)
Related bugs:
  #726153 bluefish crashed with SIGSEGV in dbusmenu_menuitem_property_set_shortcut_menuitem()
  https://bugs.launchpad.net/bugs/726153

For more details, see:
https://code.launchpad.net/~mterry/dbusmenu/disconnect-more-signals/+merge/51550

Bug 726153 looks like similar 'failed to disconnect from signal' crashes we've seen.  Here are 3 more missing signal disconnections I found, including the one that seemed to cause that crash.
-- 
https://code.launchpad.net/~mterry/dbusmenu/disconnect-more-signals/+merge/51550
Your team ayatana-commits is subscribed to branch lp:dbusmenu.
=== modified file 'libdbusmenu-gtk/parser.c'
--- libdbusmenu-gtk/parser.c	2011-02-24 17:23:47 +0000
+++ libdbusmenu-gtk/parser.c	2011-02-28 14:59:27 +0000
@@ -129,6 +129,12 @@
 	if (pdata != NULL && pdata->widget != NULL) {
 		g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
 						     0, 0, NULL, G_CALLBACK(widget_notify_cb), NULL);
+		g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
+						     0, 0, NULL, G_CALLBACK(accel_changed), NULL);
+		g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
+						     0, 0, NULL, G_CALLBACK(checkbox_toggled), NULL);
+		g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
+						     0, 0, NULL, G_CALLBACK(menuitem_notify_cb), NULL);
 		g_object_remove_weak_pointer(G_OBJECT(pdata->widget), (gpointer*)&pdata->widget);
 	}
 


Follow ups