From 40b4288ef38837a17321d0273c26befe7c8c89b0 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 23 Oct 2013 21:04:19 -0500 Subject: When we can't get a handle to the system bus, exit gracefully instead of crashing. --- libindicator/indicator-service.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libindicator/indicator-service.c b/libindicator/indicator-service.c index 11171fc..18c87fc 100644 --- a/libindicator/indicator-service.c +++ b/libindicator/indicator-service.c @@ -25,6 +25,8 @@ License along with this library. If not, see #include "config.h" #endif +#include /* exit() */ + #include #include "indicator-service.h" @@ -361,8 +363,9 @@ bus_get_cb (GObject * object, GAsyncResult * res, gpointer user_data) GDBusConnection * connection = g_bus_get_finish(res, &error); if (error != NULL) { - g_error("OMG! Unable to get a connection to DBus: %s", error->message); + g_warning("Unable to get a connection to the session DBus: %s", error->message); g_error_free(error); + exit (0); return; } -- cgit v1.2.3 From 2d8ee13a66a78d2e74a699d0bccc3316fb64aaef Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 23 Oct 2013 21:08:35 -0500 Subject: minor cleanup in the dispose() and finalize() functions --- libindicator/indicator-service.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/libindicator/indicator-service.c b/libindicator/indicator-service.c index 18c87fc..1cd6964 100644 --- a/libindicator/indicator-service.c +++ b/libindicator/indicator-service.c @@ -233,10 +233,7 @@ indicator_service_dispose (GObject *object) { IndicatorServicePrivate * priv = INDICATOR_SERVICE_GET_PRIVATE(object); - if (priv->watchers != NULL) { - g_hash_table_destroy(priv->watchers); - priv->watchers = NULL; - } + g_clear_pointer (&priv->watchers, g_hash_table_destroy); if (priv->timeout != 0) { g_source_remove(priv->timeout); @@ -249,10 +246,7 @@ indicator_service_dispose (GObject *object) priv->dbus_registration = 0; } - if (priv->bus != NULL) { - g_object_unref(priv->bus); - priv->bus = NULL; - } + g_clear_object (&priv->bus); if (priv->bus_cancel != NULL) { g_cancellable_cancel(priv->bus_cancel); @@ -271,14 +265,8 @@ indicator_service_finalize (GObject *object) { IndicatorServicePrivate * priv = INDICATOR_SERVICE_GET_PRIVATE(object); - if (priv->name != NULL) { - g_free(priv->name); - } - - if (priv->watchers != NULL) { - g_hash_table_destroy(priv->watchers); - priv->watchers = NULL; - } + g_free (priv->name); + g_clear_pointer (&priv->watchers, g_hash_table_destroy); G_OBJECT_CLASS (indicator_service_parent_class)->finalize (object); return; -- cgit v1.2.3