From 343c76431ab6b74b42a0fac659992cb5eb65e06e 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 --- gifieldinfo.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gifieldinfo.c b/gifieldinfo.c index eb0b6b2b7..106fc1ce9 100644 --- a/gifieldinfo.c +++ b/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;