summaryrefslogtreecommitdiffstats
path: root/glib/dbus-gparser.c
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2005-07-09 18:54:45 +0000
committerColin Walters <walters@verbum.org>2005-07-09 18:54:45 +0000
commit745b19d640e657118b298c6b7cc37798af878a5a (patch)
treeb5143d1b1f5b92efcd0cda93aa9ff890bbc9bdf4 /glib/dbus-gparser.c
parentb1ae5399f82a88ba397d55f224d00f437564bac5 (diff)
2005-07-09 Colin Walters <walters@verbum.org>
* glib/dbus-gparser.c (parse_annotation): Add annotations to argument if available, not method. * glib/dbus-gobject.c (arg_iterate): More verbose warnings. (invoke_object_method): First, remove some redundant GValues (object_value, error_value) in favor of working on array directly. Second, rework constness to be less buggy. Now we iterate directly over the argument metadata instead of parallel iterating over output signature and metadata. * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error. * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const annotation on input args.
Diffstat (limited to 'glib/dbus-gparser.c')
-rw-r--r--glib/dbus-gparser.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/glib/dbus-gparser.c b/glib/dbus-gparser.c
index 4c962874..bf89492d 100644
--- a/glib/dbus-gparser.c
+++ b/glib/dbus-gparser.c
@@ -666,7 +666,6 @@ parse_arg (Parser *parser,
method_info_get_n_args (parser->method) :
signal_info_get_n_args (parser->signal));
-
arg = arg_info_new (name ? name : generated_name, dir, type);
if (parser->method)
method_info_add_arg (parser->method, arg);
@@ -732,12 +731,12 @@ parse_annotation (Parser *parser,
return FALSE;
}
- if (parser->method)
+ if (parser->arg)
+ arg_info_add_annotation (parser->arg, name, value);
+ else if (parser->method)
method_info_add_annotation (parser->method, name, value);
else if (parser->interface)
interface_info_add_annotation (parser->interface, name, value);
- else if (parser->arg)
- arg_info_add_annotation (parser->arg, name, value);
else
g_assert_not_reached ();