From 480dac7364c7c42d977a7a94322a0725c6c5054a Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Mon, 6 Jun 2011 20:06:54 +0200 Subject: [PATCH] Assume only that an array is embedded in a struct if it's fixed size --- girepository/gifieldinfo.c | 8 ++++++-- 1 file 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; -- 2.34.1