From 77683a327f9f570b247cd3500a2fba9e32c4709c Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sat, 6 Sep 2008 20:33:51 +0000 Subject: [PATCH] Allow both union and struct to be boxed or not * girepository/girnode.c: Allow gtype_name and gtype_init in struct and union. * girepository/girparser.c: Parse glib: boxed bits for both structure and union. * girepository/gtypelib.c: Don't barf if structure is boxed. * giscanner/girparser.py: Parse new XML format. * giscanner/girwriter.py: Write out new XML format. * giscanner/glibast.py: Define new classes which are both Boxed and Struct/Union, as well as an "Other" for everything else. * giscanner/glibtransformer.py: Handle boxed types specially; we try to merge them with a struct/union if one exists, otherwise fall back to generic boxed. * tests/*: Update. * tools/generate.c: Write out new format. svn path=/trunk/; revision=575 --- girepository/tools/generate.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/girepository/tools/generate.c b/girepository/tools/generate.c index 2f6f512eb..efa4e7a74 100644 --- a/girepository/tools/generate.c +++ b/girepository/tools/generate.c @@ -413,15 +413,18 @@ write_struct_info (const gchar *namespace, name = g_base_info_get_name ((GIBaseInfo *)info); deprecated = g_base_info_is_deprecated ((GIBaseInfo *)info); + type_name = g_registered_type_info_get_type_name ((GIRegisteredTypeInfo*)info); + type_init = g_registered_type_info_get_type_init ((GIRegisteredTypeInfo*)info); + if (g_base_info_get_type ((GIBaseInfo *)info) == GI_INFO_TYPE_BOXED) { - type_name = g_registered_type_info_get_type_name ((GIRegisteredTypeInfo*)info); - type_init = g_registered_type_info_get_type_init ((GIRegisteredTypeInfo*)info); - - g_fprintf (file, "