summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/eggdbus/eggdbusbindingtool.c17
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: