diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2011-06-06 20:06:54 +0200 |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2011-06-06 20:13:50 +0200 |
commit | 480dac7364c7c42d977a7a94322a0725c6c5054a (patch) | |
tree | 37e2b50b7f4fcf434ef14fe49c73e8e0cdd2a78a | |
parent | 3e0292cd66752489d5b05bed57abffec0315b3ae (diff) | |
download | gobject-introspection-480dac7364c7c42d977a7a94322a0725c6c5054a.tar.gz |
Assume only that an array is embedded in a struct if it's fixed size
-rw-r--r-- | girepository/gifieldinfo.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/girepository/gifieldinfo.c b/girepository/gifieldinfo.c index eb0b6b2b..106fc1ce 100644 --- a/girepository/gifieldinfo.c +++ b/girepository/gifieldinfo.c @@ -193,8 +193,12 @@ g_field_info_get_field (GIFieldInfo *field_info, if (g_type_info_is_pointer (type_info)) { - if (g_type_info_get_array_type (type_info) == GI_ARRAY_TYPE_C) - value->v_pointer = G_STRUCT_MEMBER_P ((mem), (offset)); + if (g_type_info_get_array_type (type_info) == GI_ARRAY_TYPE_C && + g_type_info_get_array_fixed_size (type_info) >= 0) + { + /* Consider fixed-size arrays as embedded inside the struct */ + value->v_pointer = G_STRUCT_MEMBER_P ((mem), (offset)); + } else value->v_pointer = G_STRUCT_MEMBER (gpointer, mem, offset); result = TRUE; |