Blob Blame History Raw
 2010-01-04  Akira TAGOH  <tagoh@redhat.com>
 
	* src/factory.c (imsettings_manager_real_finalize): avoid a segfault
	in libnotify when the dbus session is being closed. (rhbz#530357)

Index: src/factory.c
===================================================================
--- src/factory.c	(リビジョン 368)
+++ src/factory.c	(作業コピー)
@@ -871,6 +871,11 @@
 		g_object_unref(priv->xim_req);
 	if (priv->qt_req)
 		g_object_unref(priv->qt_req);
+	if (priv->notify) {
+		/* XXX: workaround to avoid aborting on dbus. */
+		if (dbus_connection_get_is_connected(priv->req_conn))
+			g_object_unref(priv->notify);
+	}
 	dbus_connection_unref(priv->req_conn);
 	if (priv->monitor)
 		g_object_unref(priv->monitor);
@@ -882,8 +889,6 @@
 		g_hash_table_destroy(priv->aux2info);
 	if (priv->body2info)
 		g_hash_table_destroy(priv->body2info);
-	if (priv->notify)
-		g_object_unref(priv->notify);
 
 	if (G_OBJECT_CLASS (imsettings_manager_parent_class)->finalize)
 		G_OBJECT_CLASS (imsettings_manager_parent_class)->finalize(object);