aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy-gtk/empathy-account-widget.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index 216a36571..4747c8c9e 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -1343,7 +1343,7 @@ account_manager_ready_cb (GObject *source_object,
{
DEBUG ("Failed to prepare account manager: %s", error->message);
g_error_free (error);
- return;
+ goto out;
}
state = tp_account_manager_get_most_available_presence (account_manager, NULL,
@@ -1352,6 +1352,9 @@ account_manager_ready_cb (GObject *source_object,
/* simulate a presence change so the apply button will be changed
* if needed */
presence_changed_cb (account_manager, state, NULL, NULL, self);
+
+out:
+ g_object_unref (self);
}
#define WIDGET(cm, proto) \
@@ -1556,6 +1559,7 @@ do_constructed (GObject *obj)
/* dup and init the account-manager */
priv->account_manager = tp_account_manager_dup ();
+ g_object_ref (self);
tp_account_manager_prepare_async (priv->account_manager, NULL,
account_manager_ready_cb, self);