From 6fcbc26e14f77401c3f2a389873b04299012c9fc Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Tue, 2 Dec 2014 14:35:21 -0500 Subject: [PATCH] GDBus: add support for GVariant floats to helpers Add support for G_VARIANT_TYPE_FLOAT to some helper functions. We don't add support to the core serialiser because the sending side already has a catch-all case for unsupported types (because of maybe types) and the receiving side will never see floats on the wire. https://bugzilla.gnome.org/show_bug.cgi?id=740897 --- gio/gdbusutils.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gio/gdbusutils.c b/gio/gdbusutils.c index 4e17749..1ecc57b 100644 --- a/gio/gdbusutils.c +++ b/gio/gdbusutils.c @@ -419,6 +419,11 @@ g_dbus_gvariant_to_gvalue (GVariant *value, g_value_set_uint64 (out_gvalue, g_variant_get_uint64 (value)); break; + case G_VARIANT_CLASS_FLOAT: + g_value_init (out_gvalue, G_TYPE_FLOAT); + g_value_set_float (out_gvalue, g_variant_get_float (value)); + break; + case G_VARIANT_CLASS_DOUBLE: g_value_init (out_gvalue, G_TYPE_DOUBLE); g_value_set_double (out_gvalue, g_variant_get_double (value)); @@ -593,6 +598,10 @@ g_dbus_gvalue_to_gvariant (const GValue *gvalue, ret = g_variant_ref_sink (g_variant_new_uint64 (g_value_get_uint64 (gvalue))); break; + case G_VARIANT_CLASS_FLOAT: + ret = g_variant_ref_sink (g_variant_new_float (g_value_get_float (gvalue))); + break; + case G_VARIANT_CLASS_DOUBLE: ret = g_variant_ref_sink (g_variant_new_double (g_value_get_double (gvalue))); break; -- 2.7.4