[telepathy-glib/master] Don't assert if get_contact_statuses returns NULL

Will Thompson will.thompson at collabora.co.uk
Mon May 18 05:51:11 PDT 2009


Fixes fd.o#21792
---
 telepathy-glib/presence-mixin.c |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/telepathy-glib/presence-mixin.c b/telepathy-glib/presence-mixin.c
index f95b933..b2b4f9b 100644
--- a/telepathy-glib/presence-mixin.c
+++ b/telepathy-glib/presence-mixin.c
@@ -1396,19 +1396,26 @@ tp_presence_mixin_simple_presence_fill_contact_attributes (GObject *obj,
 {
   TpPresenceMixinClass *mixin_cls =
     TP_PRESENCE_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
-  struct _i_absolutely_love_g_hash_table_foreach data = {
-        mixin_cls->statuses, NULL, attributes_hash };
   GHashTable *contact_statuses;
+  GError *error = NULL;
 
-  contact_statuses = mixin_cls->get_contact_statuses (obj, contacts, NULL);
+  contact_statuses = mixin_cls->get_contact_statuses (obj, contacts, &error);
 
-  g_assert (contact_statuses != NULL);
+  if (contact_statuses == NULL)
+    {
+      DEBUG ("get_contact_statuses failed: %s", error->message);
+      g_error_free (error);
+    }
+  else
+    {
+      struct _i_absolutely_love_g_hash_table_foreach data = {
+          mixin_cls->statuses, contact_statuses, attributes_hash };
 
-  data.contact_statuses = contact_statuses;
-  g_hash_table_foreach (contact_statuses,
-      simple_presence_fill_contact_attributes_foreach, &data);
+      g_hash_table_foreach (contact_statuses,
+          simple_presence_fill_contact_attributes_foreach, &data);
 
-  g_hash_table_destroy (contact_statuses);
+      g_hash_table_destroy (contact_statuses);
+    }
 }
 
 /**
-- 
1.5.6.5



More information about the telepathy-commits mailing list