diff options
author | Havoc Pennington <hp@redhat.com> | 2005-01-28 03:06:56 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2005-01-28 03:06:56 +0000 |
commit | 3ed9db546e1143bc9aa2d83a6f423fdd81227352 (patch) | |
tree | 6ba7a785ddeff02224072cc51faf108482dfb0c7 /glib | |
parent | 4506b6594b4a86557fad7850f56b5fdabd3108de (diff) |
2005-01-27 Havoc Pennington <hp@redhat.com>
* dbus/dbus-arch-deps.h.in: add 16/32-bit types
* configure.in: find the right type for 16 and 32 bit ints as well
as 64
* dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
the 16-bit types so people don't have to stuff them in 32-bit or
byte arrays.
Diffstat (limited to 'glib')
-rw-r--r-- | glib/dbus-gparser.c | 4 | ||||
-rw-r--r-- | glib/dbus-gutils.c | 4 | ||||
-rw-r--r-- | glib/dbus-gvalue.c | 29 |
3 files changed, 31 insertions, 6 deletions
diff --git a/glib/dbus-gparser.c b/glib/dbus-gparser.c index 2318c015..478dcdf3 100644 --- a/glib/dbus-gparser.c +++ b/glib/dbus-gparser.c @@ -437,6 +437,10 @@ basic_type_from_string (const char *str) { if (strcmp (str, "string") == 0) return DBUS_TYPE_STRING; + else if (strcmp (str, "int16") == 0) + return DBUS_TYPE_INT16; + else if (strcmp (str, "uint16") == 0) + return DBUS_TYPE_UINT16; else if (strcmp (str, "int32") == 0) return DBUS_TYPE_INT32; else if (strcmp (str, "uint32") == 0) diff --git a/glib/dbus-gutils.c b/glib/dbus-gutils.c index 9e4a5cd2..ff48e7f1 100644 --- a/glib/dbus-gutils.c +++ b/glib/dbus-gutils.c @@ -88,6 +88,10 @@ _dbus_gutils_type_to_string (int type) return "boolean"; case DBUS_TYPE_BYTE: return "byte"; + case DBUS_TYPE_INT16: + return "int16"; + case DBUS_TYPE_UINT16: + return "uint16"; case DBUS_TYPE_INT32: return "int32"; case DBUS_TYPE_UINT32: diff --git a/glib/dbus-gvalue.c b/glib/dbus-gvalue.c index 1fed0cf7..e2bf40b2 100644 --- a/glib/dbus-gvalue.c +++ b/glib/dbus-gvalue.c @@ -40,12 +40,29 @@ dbus_gvalue_demarshal (DBusMessageIter *iter, GValue *value) switch (dbus_message_iter_get_arg_type (iter)) { MAP_BASIC (BOOLEAN, BOOLEAN); - MAP_BASIC (BYTE, UCHAR); - MAP_BASIC (INT32, INT); - MAP_BASIC (UINT32, UINT); - MAP_BASIC (INT64, INT64); - MAP_BASIC (UINT64, UINT64); - MAP_BASIC (DOUBLE, DOUBLE); + MAP_BASIC (BYTE, UCHAR); + MAP_BASIC (INT32, INT); + MAP_BASIC (UINT32, UINT); + MAP_BASIC (INT64, INT64); + MAP_BASIC (UINT64, UINT64); + MAP_BASIC (DOUBLE, DOUBLE); + + case DBUS_TYPE_INT16: + { + dbus_int16_t v; + g_value_init (value, G_TYPE_INT); + dbus_message_iter_get_basic (iter, &v); + g_value_set_int (value, v); + } + break; + case DBUS_TYPE_UINT16: + { + dbus_uint16_t v; + g_value_init (value, G_TYPE_UINT); + dbus_message_iter_get_basic (iter, &v); + g_value_set_uint (value, v); + } + break; case DBUS_TYPE_STRING: case DBUS_TYPE_OBJECT_PATH: |