diff options
-rw-r--r-- | src/eggdbus/eggdbusbindingtool.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/eggdbus/eggdbusbindingtool.c b/src/eggdbus/eggdbusbindingtool.c index 55e45d8..cca1edc 100644 --- a/src/eggdbus/eggdbusbindingtool.c +++ b/src/eggdbus/eggdbusbindingtool.c @@ -254,15 +254,26 @@ get_c_marshaller_name_for_args (const EggDBusInterfaceArgInfo *args, guint num_a break; case DBUS_TYPE_OBJECT_PATH: - type_name = "STRING"; + type_name = "BOXED"; break; case DBUS_TYPE_SIGNATURE: - type_name = "STRING"; + type_name = "BOXED"; break; case DBUS_TYPE_ARRAY: - type_name = "BOXED"; + switch (arg->signature[1]) + { + case DBUS_TYPE_STRING: + case DBUS_TYPE_OBJECT_PATH: + case DBUS_TYPE_SIGNATURE: + type_name = "BOXED"; + break; + + default: + type_name = "OBJECT"; + break; + } break; case DBUS_STRUCT_BEGIN_CHAR: |