diff options
Diffstat (limited to 'girepository/ginfo.c')
-rw-r--r-- | girepository/ginfo.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/girepository/ginfo.c b/girepository/ginfo.c index 724109fe..1d56a22a 100644 --- a/girepository/ginfo.c +++ b/girepository/ginfo.c @@ -1093,6 +1093,23 @@ g_type_info_is_zero_terminated (GITypeInfo *info) return FALSE; } +GIArrayType +g_type_info_get_array_type (GITypeInfo *info) +{ + GIRealInfo *rinfo = (GIRealInfo *)info; + SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset]; + + if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0)) + { + ArrayTypeBlob *blob = (ArrayTypeBlob *)&rinfo->typelib->data[rinfo->offset]; + g_return_val_if_fail (blob->tag == GI_TYPE_TAG_ARRAY, -1); + + return blob->array_type; + } + + return -1; +} + gint g_type_info_get_n_error_domains (GITypeInfo *info) { |