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
This commit is contained in:
Maxim Ermilov 2011-02-17 23:27:09 +03:00 committed by Colin Walters
parent 1611ff77df
commit eeddf77567

View File

@ -193,7 +193,10 @@ g_field_info_get_field (GIFieldInfo *field_info,
if (g_type_info_is_pointer (type_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; result = TRUE;
} }
else else