From d286484efbc9321f5783a7264ca94b1f54f69e2e Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 12 Feb 2009 04:51:28 +0000 Subject: Bug 571373 - Remove hardcoded offsets in ginfo.c In a few places we had hardcoded sizes for accessing structure members and computing into variable size arrays. Remove those. --- diff --git a/girepository/ginfo.c b/girepository/ginfo.c index f4ca131..7ecfe63 100644 --- a/girepository/ginfo.c +++ b/girepository/ginfo.c @@ -775,7 +775,7 @@ g_arg_info_get_type (GIArgInfo *info) { GIBaseInfo *base = (GIBaseInfo *)info; - return g_type_info_new (base, base->typelib, base->offset + 12); + return g_type_info_new (base, base->typelib, base->offset + G_STRUCT_OFFSET (ArgBlob, arg_type)); } /* GITypeInfo functions */ @@ -828,7 +828,9 @@ g_type_info_get_param_type (GITypeInfo *info, case GI_TYPE_TAG_GLIST: case GI_TYPE_TAG_GSLIST: case GI_TYPE_TAG_GHASH: - return g_type_info_new (base, base->typelib, base->offset + 4 + 4 * n); + return g_type_info_new (base, base->typelib, + base->offset + sizeof (ParamTypeBlob) + + sizeof (SimpleTypeBlob) * n); break; default: ; @@ -1024,7 +1026,7 @@ g_field_info_get_type (GIFieldInfo *info) { GIBaseInfo *base = (GIBaseInfo *)info; - return g_type_info_new (base, base->typelib, base->offset + 8); + return g_type_info_new (base, base->typelib, base->offset + G_STRUCT_OFFSET (FieldBlob, type)); } /* GIRegisteredTypeInfo functions */ @@ -1722,7 +1724,7 @@ g_property_info_get_type (GIPropertyInfo *info) { GIBaseInfo *base = (GIBaseInfo *)info; - return g_type_info_new (base, base->typelib, base->offset + 8); + return g_type_info_new (base, base->typelib, base->offset + G_STRUCT_OFFSET (PropertyBlob, type)); } -- cgit v0.9.1