diff options
author | Colin Walters <walters@src.gnome.org> | 2008-10-25 15:20:54 +0000 |
---|---|---|
committer | Colin Walters <walters@src.gnome.org> | 2008-10-25 15:20:54 +0000 |
commit | d15f8cde47100a77189d5febb8704c0e4d736594 (patch) | |
tree | 651b1c0990dbf5ec99c77139e1a648aca63d5ec5 /girepository/girnode.c | |
parent | c7d2a0712f6301aa670f87a98e8f217bf3c54a7a (diff) | |
download | gobject-introspection-d15f8cde47100a77189d5febb8704c0e4d736594.tar.gz |
Bug 557786 - support fixed size arrays
svn path=/trunk/; revision=814
Diffstat (limited to 'girepository/girnode.c')
-rw-r--r-- | girepository/girnode.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/girepository/girnode.c b/girepository/girnode.c index fad4c28c..632d5c34 100644 --- a/girepository/girnode.c +++ b/girepository/girnode.c @@ -1114,6 +1114,8 @@ serialize_type (GIrModule *module, if (node->has_length) g_string_append_printf (str, "length=%d", node->length); + else if (node->has_size) + g_string_append_printf (str, "fixed-size=%d", node->size); if (node->zero_terminated) g_string_append_printf (str, "%szero-terminated=1", @@ -1319,8 +1321,14 @@ g_ir_node_build_typelib (GIrNode *node, array->tag = type->tag; array->zero_terminated = type->zero_terminated; array->has_length = type->has_length; + array->has_size = type->has_size; array->reserved2 = 0; - array->length = type->length; + if (array->has_length) + array->length = type->length; + else if (array->has_size) + array->size = type->size; + else + array->length = -1; pos = *offset2 + 4; *offset2 += 8; |