summaryrefslogtreecommitdiffstats
path: root/glib/dbus-binding-tool-glib.c
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2005-02-27 17:38:12 +0000
committerColin Walters <walters@verbum.org>2005-02-27 17:38:12 +0000
commit2b97fb81a508a047b14f4c4426c28abfd18bb2e0 (patch)
treed44ef7f2fe5d373ac44e3a41add8bd3f08e2a8fc /glib/dbus-binding-tool-glib.c
parentee27481d7b7d6d9a4f41b7d641a2618dedf676dd (diff)
2005-02-27 Colin Walters <walters@verbum.org>
* glib/dbus-gidl.c (property_info_get_type, arg_info_get_type): Change return value to const char * instead of int so we can do full signatures. (struct PropertyInfo, struct ArgInfo): Store char *. (property_info_new, arg_info_new): Update parameters, strdup. (property_info_unref, arg_info_unref): Free. * glib/dbus-gidl.h: Update prototypes. * glib/dbus-gparser.c (basic_type_from_string): Delete. (validate_signature): New function, just validates signature and sets GError. (parse_property, parse_arg): Invoke validate_signature. Store signature instead of just type code. * glib/dbus-gvalue.c (base_type_from_signature): New utility function to return a primary type for a signature, dropping information about types in container types. (dbus_gvalue_genmarshal_name_from_type) (dbus_gvalue_binding_type_from_type) (dbus_gvalue_ctype_from_type): Update to take full signature instead of type code. (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c. * glib/dbus-gvalue.h: Update prototypes for above. * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to glib/dbus-gvalue.c as dbus_gtype_to_dbus_type. (introspect_properties, introspect_signals, write_interface): Update to handle signatures, and remove usage of _dbus_gutils_type_to_string. (handle_introspect): Print out type codes instead of e.g. "string" in hardcoded introspection XML; also use x_AS_STRING constants instead of hardcoding in string. * glib/dbus-glib-tool.c (pretty_print): Handle signature change to string. Remove usage of _dbus_gutils_type_to_string. * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete. * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for deletion. * glib/dbus-binding-tool-glib.c (compute_marshaller) (compute_marshaller_name, generate_glue): Handle signature change to string. (write_formal_parameters, write_args_for_direction): Ditto, and remove FIXME. * tools/dbus-tree-view.c (type_to_string): Delete. (info_set_func_text): Update to print full signatures. * test/glib/test-service-glib.xml: Change types to new introspection format.
Diffstat (limited to 'glib/dbus-binding-tool-glib.c')
-rw-r--r--glib/dbus-binding-tool-glib.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/glib/dbus-binding-tool-glib.c b/glib/dbus-binding-tool-glib.c
index 94823cb1..641f07da 100644
--- a/glib/dbus-binding-tool-glib.c
+++ b/glib/dbus-binding-tool-glib.c
@@ -68,13 +68,15 @@ compute_marshaller (MethodInfo *method, GError **error)
if (arg_info_get_direction (arg) == ARG_IN)
{
- const char *marshal_name = dbus_gvalue_genmarshal_name_from_type (arg_info_get_type (arg));
+ const char *marshal_name;
+
+ marshal_name = dbus_gvalue_genmarshal_name_from_type (arg_info_get_type (arg));
if (!marshal_name)
{
g_set_error (error,
DBUS_BINDING_TOOL_ERROR,
DBUS_BINDING_TOOL_ERROR_UNSUPPORTED_CONVERSION,
- _("Unsupported conversion from D-BUS type %d to glib-genmarshal type"),
+ _("Unsupported conversion from D-BUS type %s to glib-genmarshal type"),
arg_info_get_type (arg));
g_string_free (ret, TRUE);
return NULL;
@@ -129,7 +131,7 @@ compute_marshaller_name (MethodInfo *method, GError **error)
if (arg_info_get_direction (arg) == ARG_IN)
{
const char *marshal_name;
- int type;
+ const char *type;
type = arg_info_get_type (arg);
marshal_name = dbus_gvalue_genmarshal_name_from_type (type);
@@ -145,7 +147,7 @@ compute_marshaller_name (MethodInfo *method, GError **error)
}
g_string_append (ret, "_");
- g_string_append (ret, dbus_gvalue_genmarshal_name_from_type (arg_info_get_type (arg)));
+ g_string_append (ret, dbus_gvalue_genmarshal_name_from_type (type));
}
}
@@ -385,7 +387,7 @@ generate_glue (BaseInfo *base, DBusBindingToolCData *data, GError **error)
g_string_append_c (object_introspection_data_blob, direction);
g_string_append_c (object_introspection_data_blob, '\0');
- g_string_append_c (object_introspection_data_blob, arg_info_get_type (arg));
+ g_string_append (object_introspection_data_blob, arg_info_get_type (arg));
g_string_append_c (object_introspection_data_blob, '\0');
}
@@ -608,7 +610,6 @@ write_formal_parameters (InterfaceInfo *iface, MethodInfo *method, GIOChannel *c
direction = arg_info_get_direction (arg);
- /* FIXME - broken for containers */
type_str = dbus_gvalue_ctype_from_type (arg_info_get_type (arg), direction == ARG_IN);
if (!type_str)
@@ -616,7 +617,7 @@ write_formal_parameters (InterfaceInfo *iface, MethodInfo *method, GIOChannel *c
g_set_error (error,
DBUS_BINDING_TOOL_ERROR,
DBUS_BINDING_TOOL_ERROR_UNSUPPORTED_CONVERSION,
- _("Unsupported conversion from D-BUS type %d to glib C type"),
+ _("Unsupported conversion from D-BUS type %s to glib C type"),
arg_info_get_type (arg));
return FALSE;
}
@@ -660,15 +661,14 @@ write_args_for_direction (InterfaceInfo *iface, MethodInfo *method, GIOChannel *
if (direction != arg_info_get_direction (arg))
continue;
- /* FIXME - broken for containers */
type_str = dbus_gvalue_binding_type_from_type (arg_info_get_type (arg));
if (!type_str)
{
g_set_error (error,
DBUS_BINDING_TOOL_ERROR,
DBUS_BINDING_TOOL_ERROR_UNSUPPORTED_CONVERSION,
- _("Unsupported conversion from D-BUS type %c"),
- (char) arg_info_get_type (arg));
+ _("Unsupported conversion from D-BUS type %s"),
+ arg_info_get_type (arg));
return FALSE;
}