diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-05-15 16:17:12 +0200 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-05-16 14:55:50 +0200 |
commit | 86701562944e7a5380d4540876b506d0813a2b5e (patch) | |
tree | 4030a2e2fd4909bddf4d783129fcc0b20074ca5a | |
parent | 2f9b205075a6a2b3b2c9d5899f62dd0b3c733ef4 (diff) |
base-contact-list: start using tp_handle_set_to_variant()
We are still using tp_handle_set_to_array() before calling
tp_base_connection_dup_contact_attributes(). Not sure if we should have a
version of this API taking a GVariant as well or not.
-rw-r--r-- | telepathy-glib/base-contact-list.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/telepathy-glib/base-contact-list.c b/telepathy-glib/base-contact-list.c index fd9aeeaa6..b81274dcc 100644 --- a/telepathy-glib/base-contact-list.c +++ b/telepathy-glib/base-contact-list.c @@ -2711,7 +2711,8 @@ tp_base_contact_list_groups_removed (TpBaseContactList *self, if (actually_removed->len > 0) { - GArray *members_arr = tp_handle_set_to_array (old_members); + GVariant *members_variant = tp_handle_set_to_variant (old_members); + g_variant_ref_sink (members_variant); DEBUG ("GroupsRemoved([%u including '%s'])", actually_removed->len, @@ -2726,24 +2727,23 @@ tp_base_contact_list_groups_removed (TpBaseContactList *self, self->priv->contact_groups_skeleton, (const gchar * const *) actually_removed->pdata); - if (members_arr->len > 0) + if (g_variant_n_children (members_variant) > 0) { const gchar *empty_strv[] = { NULL }; /* we already added NULL to actually_removed, so subtract 1 from its * length */ - DEBUG ("GroupsChanged([%u contacts], [], [%u groups])", - members_arr->len, actually_removed->len - 1); + DEBUG ("GroupsChanged([%" G_GSIZE_FORMAT " contacts], [], [%u groups])", + g_variant_n_children (members_variant), + actually_removed->len - 1); if (self->priv->contact_groups_skeleton != NULL) _tp_gdbus_connection_interface_contact_groups1_emit_groups_changed ( - self->priv->contact_groups_skeleton, - g_variant_new_fixed_array (G_VARIANT_TYPE_UINT32, - members_arr->data, members_arr->len, sizeof (TpHandle)), + self->priv->contact_groups_skeleton, members_variant, empty_strv, (const gchar * const *) actually_removed->pdata); } - g_array_unref (members_arr); + g_variant_unref (members_variant); } tp_handle_set_destroy (old_members); @@ -3013,15 +3013,11 @@ tp_base_contact_list_groups_changed (TpBaseContactList *self, if (self->priv->contact_groups_skeleton != NULL) { - GArray *members_arr = tp_handle_set_to_array (contacts); - _tp_gdbus_connection_interface_contact_groups1_emit_groups_changed ( self->priv->contact_groups_skeleton, - g_variant_new_fixed_array (G_VARIANT_TYPE_UINT32, - members_arr->data, members_arr->len, sizeof (TpHandle)), + tp_handle_set_to_variant (contacts), (const gchar * const *) really_added->pdata, (const gchar * const *) really_removed->pdata); - g_array_unref (members_arr); } } |