[empathy] account-widget: ensure that the object stays alive during the tp_account_manager_prepare_async call



commit 9ee5a2d0ec80e655cb834f8f95603f572c2f87f9
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Tue Dec 22 15:37:15 2009 +0000

    account-widget: ensure that the object stays alive during the tp_account_manager_prepare_async call

 libempathy-gtk/empathy-account-widget.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index 216a365..4747c8c 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);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]