diff options
author | Maxim Ermilov <zaspire@rambler.ru> | 2011-02-17 23:27:09 +0300 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2011-05-04 15:01:10 -0400 |
commit | 57c51b746cb25261a05533010042d535a1749520 (patch) | |
tree | cb1ad8ad1764753d2aab7c79e2764e2c345a21d4 /girepository | |
parent | 2330248ea37ad1251da58700ffb1ea0d578523ee (diff) | |
download | gobject-introspection-57c51b746cb25261a05533010042d535a1749520.tar.gz |
g_field_info_get_field: return correct pointer for C array
Also add a test case.
https://bugzilla.gnome.org/show_bug.cgi?id=640468
Diffstat (limited to 'girepository')
-rw-r--r-- | girepository/gifieldinfo.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/girepository/gifieldinfo.c b/girepository/gifieldinfo.c index cf5c2332..b9b56a4d 100644 --- a/girepository/gifieldinfo.c +++ b/girepository/gifieldinfo.c @@ -193,7 +193,10 @@ g_field_info_get_field (GIFieldInfo *field_info, if (g_type_info_is_pointer (type_info)) { - value->v_pointer = G_STRUCT_MEMBER (gpointer, mem, offset); + if (g_type_info_get_array_type (type_info) == GI_ARRAY_TYPE_C) + value->v_pointer = G_STRUCT_MEMBER_P ((mem), (offset)); + else + value->v_pointer = G_STRUCT_MEMBER (gpointer, mem, offset); result = TRUE; } else |