summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2010-12-07 19:02:48 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2010-12-08 13:10:13 +0000
commitd6fbd8bfaa2db21273514bf01a93db748ee9b8e8 (patch)
tree82ec4c90b848dfc9c9dd7f84508fcd321c19d14f
parente402894d38823bdd1260b162a0e1851079648c57 (diff)
downloadtelepathy-glib-d6fbd8bfaa2db21273514bf01a93db748ee9b8e8.tar.gz
Always call contacts_get_attributes via the context->todo queue
-rw-r--r--telepathy-glib/contact.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/telepathy-glib/contact.c b/telepathy-glib/contact.c
index 0b2240646..a95a51bb6 100644
--- a/telepathy-glib/contact.c
+++ b/telepathy-glib/contact.c
@@ -3257,12 +3257,11 @@ tp_connection_get_contacts_by_handle (TpConnection *self,
/* we support the Contacts interface, so we can hold the handles and
* simultaneously inspect them. After that, we'll fill in any
* features that are necessary (this becomes a no-op if Contacts
- * gave us everything). */
- contacts_get_attributes (context);
+ * will give us everything). */
+ g_queue_push_head (&context->todo, contacts_get_attributes);
contacts_context_queue_features (context);
- /* we have one excess ref to the context because we create it,
- * and then contacts_get_attributes refs it */
- contacts_context_unref (context);
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
+ contacts_context_idle_continue, context, contacts_context_unref);
return;
}