summaryrefslogtreecommitdiff
path: root/girepository/giroffsets.c
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-06-02 19:36:59 +0200
committerTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-06-02 19:36:59 +0200
commitb7804cc7114657f367f6371ddfe9805dad8c67ff (patch)
tree9e7169a9f339ba2fcf0f4530134bae8bbd705dc4 /girepository/giroffsets.c
parent2cdd4e9a3eb7944eb8cfeed17eb50185fc7623d1 (diff)
downloadgobject-introspection-b7804cc7114657f367f6371ddfe9805dad8c67ff.tar.gz
Fix marshalling of GStrv.GOBJECT_INTROSPECTION_0_6_13
* gir/gimarshallingtests.[hc]: Add a test for GStrv in function args and as struct fields. * girepository/giroffsets.c: Correctly compute the size of structs with array fields * girepository/girparser.c: Set is_pointer to FALSE for arrays with fixed size that are inside structs. * giscanner/glibtransformer.py: Special case GStrv as arrays of utf8. * giscanner/annotationparser.py: Make full transfer the default for arrays of char* returned by functions. https://bugzilla.gnome.org/show_bug.cgi?id=620170
Diffstat (limited to 'girepository/giroffsets.c')
-rw-r--r--girepository/giroffsets.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/girepository/giroffsets.c b/girepository/giroffsets.c
index 7a5e7011..263665ce 100644
--- a/girepository/giroffsets.c
+++ b/girepository/giroffsets.c
@@ -232,7 +232,11 @@ get_type_size_alignment (GIrNodeType *type,
{
ffi_type *type_ffi;
- if (type->tag == GI_TYPE_TAG_ARRAY)
+ if (type->is_pointer)
+ {
+ type_ffi = &ffi_type_pointer;
+ }
+ else if (type->tag == GI_TYPE_TAG_ARRAY)
{
gint elt_size, elt_alignment;
@@ -250,10 +254,6 @@ get_type_size_alignment (GIrNodeType *type,
return TRUE;
}
- else if (type->is_pointer)
- {
- type_ffi = &ffi_type_pointer;
- }
else
{
if (type->tag == GI_TYPE_TAG_INTERFACE)