[telepathy-glib/master] account-manager: signal account-validity-changed to FALSE for accounts not in the hash table

Jonny Lamb jonny.lamb at collabora.co.uk
Mon Sep 28 06:19:32 PDT 2009


Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
---
 telepathy-glib/account-manager.c |   26 +++++++++-----------------
 1 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/telepathy-glib/account-manager.c b/telepathy-glib/account-manager.c
index 8df01bd..c779f35 100644
--- a/telepathy-glib/account-manager.c
+++ b/telepathy-glib/account-manager.c
@@ -335,25 +335,17 @@ _tp_account_manager_validity_changed_cb (TpAccountManager *proxy,
   TpAccountManagerPrivate *priv = manager->priv;
   TpAccount *account;
 
+  account = tp_account_manager_ensure_account (manager, path);
+
+  g_object_ref (account);
+
   if (!valid)
-    {
-      account = g_hash_table_lookup (priv->accounts, path);
+    g_hash_table_remove (priv->accounts, path);
 
-      if (account != NULL)
-        {
-          g_object_ref (account);
-          g_hash_table_remove (priv->accounts, account);
-          g_signal_emit (manager, signals[ACCOUNT_VALIDITY_CHANGED], 0,
-              account, valid);
-          g_object_unref (account);
-        }
-    }
-  else
-    {
-      account = tp_account_manager_ensure_account (manager, path);
-      g_signal_emit (manager, signals[ACCOUNT_VALIDITY_CHANGED], 0,
-          account, valid);
-    }
+  g_signal_emit (manager, signals[ACCOUNT_VALIDITY_CHANGED], 0,
+      account, valid);
+
+  g_object_unref (account);
 }
 
 static void
-- 
1.5.6.5




More information about the telepathy-commits mailing list