[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