diff options
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:  | 
