← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~agateau/libindicate/disconnect-from-dbus into lp:libindicate

 

Aurélien Gâteau has proposed merging lp:~agateau/libindicate/disconnect-from-dbus into lp:libindicate.

    Requested reviews:
    Indicator Applet Developers (indicator-applet-developers)
Related bugs:
  #462049 Plasma crashes unexpectedly
  https://bugs.launchpad.net/bugs/462049


This fix bug #462049, which causes Plasma to crash randomly.

I would like to see an SRU for it.
-- 
https://code.launchpad.net/~agateau/libindicate/disconnect-from-dbus/+merge/14419
Your team ayatana-commits is subscribed to branch lp:libindicate.
=== modified file 'libindicate/listener.c'
--- libindicate/listener.c	2009-09-14 15:30:59 +0000
+++ libindicate/listener.c	2009-11-04 13:50:22 +0000
@@ -262,6 +262,11 @@
 {
 	IndicateListener * listener = INDICATE_LISTENER(obj);
 	IndicateListenerPrivate * priv = INDICATE_LISTENER_GET_PRIVATE(listener);
+
+	dbus_g_proxy_disconnect_signal(priv->dbus_proxy_session, "NameOwnerChanged",
+	                               G_CALLBACK(dbus_owner_change), listener);
+	dbus_g_proxy_disconnect_signal(priv->dbus_proxy_system, "NameOwnerChanged",
+	                               G_CALLBACK(dbus_owner_change), listener);
 	
 	if (priv->todo_idle != 0) {
 		g_idle_remove_by_data(obj);
@@ -307,6 +312,7 @@
 static void
 dbus_owner_change (DBusGProxy * proxy, const gchar * name, const gchar * prev, const gchar * new, IndicateListener * listener)
 {
+	g_return_if_fail(INDICATE_IS_LISTENER(listener));
 	IndicateListenerPrivate * priv = INDICATE_LISTENER_GET_PRIVATE(listener);
 
 	/* Figure out which bus we are. */


Follow ups