From eeddf775677b2df9927643d064b78e9776ced494 Mon Sep 17 00:00:00 2001 From: Maxim Ermilov Date: Thu, 17 Feb 2011 23:27:09 +0300 Subject: [PATCH] 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 --- gifieldinfo.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gifieldinfo.c b/gifieldinfo.c index cf5c23326..b9b56a4de 100644 --- a/gifieldinfo.c +++ b/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