summaryrefslogtreecommitdiff
path: root/girepository/ginfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/ginfo.c')
-rw-r--r--girepository/ginfo.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/girepository/ginfo.c b/girepository/ginfo.c
index 5df1e3f8..8324c05b 100644
--- a/girepository/ginfo.c
+++ b/girepository/ginfo.c
@@ -741,12 +741,39 @@ g_arg_info_get_ownership_transfer (GIArgInfo *info)
return GI_TRANSFER_NOTHING;
}
+GIScopeType
+g_arg_info_get_scope (GIArgInfo *info)
+{
+ GIBaseInfo *base = (GIBaseInfo *)info;
+ ArgBlob *blob = (ArgBlob *)&base->typelib->data[base->offset];
+
+ return blob->scope;
+}
+
+gint
+g_arg_info_get_closure (GIArgInfo *info)
+{
+ GIBaseInfo *base = (GIBaseInfo *)info;
+ ArgBlob *blob = (ArgBlob *)&base->typelib->data[base->offset];
+
+ return blob->closure;
+}
+
+gint
+g_arg_info_get_destroy (GIArgInfo *info)
+{
+ GIBaseInfo *base = (GIBaseInfo *)info;
+ ArgBlob *blob = (ArgBlob *)&base->typelib->data[base->offset];
+
+ return blob->destroy;
+}
+
GITypeInfo *
g_arg_info_get_type (GIArgInfo *info)
{
GIBaseInfo *base = (GIBaseInfo *)info;
- return g_type_info_new (base, base->typelib, base->offset + 8);
+ return g_type_info_new (base, base->typelib, base->offset + 12);
}
/* GITypeInfo functions */