2005-07-01 Colin Walters <walters@verbum.org>
authorColin Walters <walters@verbum.org>
Fri, 1 Jul 2005 15:44:12 +0000 (15:44 +0000)
committerColin Walters <walters@verbum.org>
Fri, 1 Jul 2005 15:44:12 +0000 (15:44 +0000)
Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

* glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
(dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.

ChangeLog
glib/dbus-gvalue.c

index 0476f33..f88b16d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-07-01  Colin Walters  <walters@verbum.org>
+
+       Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
+       
+       * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
+       (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
+       G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
+       and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
+
 2005-06-30  Colin Walters  <walters@verbum.org>
 
        * test/glib/test-dbus-glib.c:
index d8ce3d2..e2786c4 100644 (file)
@@ -170,7 +170,7 @@ dbus_typecode_maps_to_basic (int typecode)
   return typecode_to_gtype (typecode) != G_TYPE_INVALID;
 }
 
-static gboolean
+static GType
 basic_typecode_to_gtype (int typecode)
 {
   g_assert (dbus_type_is_basic (typecode));
@@ -306,7 +306,36 @@ dbus_g_value_types_init (void)
     };
     register_basic (DBUS_TYPE_STRING, &typedata);
   }
-  
+  /* fundamental GTypes that don't map 1:1 with D-BUS types */
+  {
+    static const DBusGTypeMarshalData typedata = {
+      DBUS_TYPE_BYTE_AS_STRING,
+      &basic_vtable,
+    };
+    set_type_metadata (G_TYPE_CHAR, &typedata);
+  }
+  {
+    static const DBusGTypeMarshalData typedata = {
+      DBUS_TYPE_INT32_AS_STRING,
+      &basic_vtable,
+    };
+    set_type_metadata (G_TYPE_LONG, &typedata);
+  }
+  {
+    static const DBusGTypeMarshalData typedata = {
+      DBUS_TYPE_UINT32_AS_STRING,
+      &basic_vtable,
+    };
+    set_type_metadata (G_TYPE_ULONG, &typedata);
+  }
+  {
+    static const DBusGTypeMarshalData typedata = {
+      DBUS_TYPE_DOUBLE_AS_STRING,
+      &basic_vtable,
+    };
+    set_type_metadata (G_TYPE_FLOAT, &typedata);
+  }
+
   /* Register complex types with builtin GType mappings */
   {
     static const DBusGTypeMarshalVtable vtable = {