diff options
author | David Zeuthen <davidz@redhat.com> | 2009-01-13 18:25:51 -0500 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2009-01-13 18:25:51 -0500 |
commit | 65bd11e202b1236640b451103bf0acbb75961f78 (patch) | |
tree | ad0963373e5de9d1b90330b73c4b87af61ece0f0 | |
parent | 84bb882ba1cfe4e582c7e83ff7aa823d66d01c76 (diff) |
fix up types for marshallers0.2
Apparently the type is never checked for generated marshallers, only for
built-in GObject marshallers such as VOID__STRING. That's why this bug only
surfaced, for SessionAdded(ObjectPath path), when I started using eggdbus to
client-side ConsoleKit bindings.
-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: |