gio: Fix regression encoding an array of doubles
authorStef Walter <stefw@gnome.org>
Tue, 22 Jul 2014 19:29:27 +0000 (21:29 +0200)
committerStef Walter <stefw@gnome.org>
Wed, 23 Jul 2014 13:44:40 +0000 (15:44 +0200)
Take the simple slow path in this case. Encoding a double
takes special precautions as you can see in append_value_to_blob()
and friends.

https://bugzilla.gnome.org/show_bug.cgi?id=732754

gio/gdbusmessage.c

index cd995b8..dcf1758 100644 (file)
@@ -1210,6 +1210,11 @@ get_type_fixed_size (const GVariantType *type)
 {
   /* NB: we do not treat 'b' as fixed-size here because GVariant and
    * D-Bus disagree about the size.
+   *
+   * In addition 'd' is encoded differently by GVariant and DBus, so
+   * we force (en|de)coding rather than direct use of fixed data.
+   *
+   * https://bugzilla.gnome.org/show_bug.cgi?id=732754
    */
   switch (*g_variant_type_peek_string (type))
     {
@@ -1219,7 +1224,7 @@ get_type_fixed_size (const GVariantType *type)
       return 2;
     case 'i': case 'u': case 'h':
       return 4;
-    case 'x': case 't': case 'd':
+    case 'x': case 't':
       return 8;
     default:
       return 0;