summaryrefslogtreecommitdiff
path: root/tools/generate.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/generate.c')
-rw-r--r--tools/generate.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/generate.c b/tools/generate.c
index 7c849bcd..dcc36faf 100644
--- a/tools/generate.c
+++ b/tools/generate.c
@@ -455,6 +455,30 @@ write_callable_info (const gchar *namespace,
if (g_arg_info_is_optional (arg))
xml_printf (file, " optional=\"1\"");
+
+ switch (g_arg_info_get_scope (arg))
+ {
+ case GI_SCOPE_TYPE_INVALID:
+ break;
+ case GI_SCOPE_TYPE_CALL:
+ xml_printf (file, " scope=\"call\"");
+ break;
+ case GI_SCOPE_TYPE_OBJECT:
+ xml_printf (file, " scope=\"object\"");
+ break;
+ case GI_SCOPE_TYPE_ASYNC:
+ xml_printf (file, " scope=\"async\"");
+ break;
+ case GI_SCOPE_TYPE_NOTIFIED:
+ xml_printf (file, " scope=\"notified\"");
+ break;
+ }
+
+ if (g_arg_info_get_closure (arg) >= 0)
+ xml_printf (file, " closure=\"%d\"", g_arg_info_get_closure (arg));
+
+ if (g_arg_info_get_destroy (arg) >= 0)
+ xml_printf (file, " destroy=\"%d\"", g_arg_info_get_destroy (arg));
type = g_arg_info_get_type (arg);
write_type_info (namespace, type, file);