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);