diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-04-19 11:45:43 +0200 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-05-09 12:14:10 +0200 |
commit | 55cb32b5bd54e8f2ca59f62c13b7ab9514ae10bd (patch) | |
tree | 5ad30bf813f65c576d2974dfd2592a1cbf83205c /telepathy-glib/dbus.c | |
parent | 268c5a5e7d4de7bde8dd41cf6330d082176eb7ce (diff) | |
download | telepathy-glib-55cb32b5bd54e8f2ca59f62c13b7ab9514ae10bd.tar.gz |
add _tp_asv_from_vardict()
Diffstat (limited to 'telepathy-glib/dbus.c')
-rw-r--r-- | telepathy-glib/dbus.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/telepathy-glib/dbus.c b/telepathy-glib/dbus.c index 4ef2fcf5d..aaffce260 100644 --- a/telepathy-glib/dbus.c +++ b/telepathy-glib/dbus.c @@ -1984,3 +1984,29 @@ _tp_boxed_to_variant (GType gtype, return g_variant_ref_sink (ret); } + +/* + * _tp_asv_from_vardict: + * @variant: a #GVariant of type %G_VARIANT_TYPE_VARDICT + * + * Returns: (transfer full): a newly created #GHashTable of + * type #TP_HASH_TYPE_STRING_VARIANT_MAP + */ +GHashTable * +_tp_asv_from_vardict (GVariant *variant) +{ + GValue v = G_VALUE_INIT; + GHashTable *result; + + g_return_val_if_fail (variant != NULL, NULL); + g_return_val_if_fail (g_variant_is_of_type (variant, G_VARIANT_TYPE_VARDICT), + NULL); + + dbus_g_value_parse_g_variant (variant, &v); + g_assert (G_VALUE_HOLDS (&v, TP_HASH_TYPE_STRING_VARIANT_MAP)); + + result = g_value_dup_boxed (&v); + + g_value_unset (&v); + return result; +} |