From: Juerg Billeter Date: Wed, 28 May 2008 19:35:06 +0000 (+0000) Subject: Ensure to not generate empty C structs, patch by Jared Moore, fixes bug X-Git-Tag: VALA_0_3_3~90 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d31f65e1bc247bc2dcefb07a002fc77867398965;p=thirdparty%2Fvala.git Ensure to not generate empty C structs, patch by Jared Moore, fixes bug 2008-05-28 Juerg Billeter * gobject/valaccodeclassbinding.vala: Ensure to not generate empty C structs, patch by Jared Moore, fixes bug 533977 svn path=/trunk/; revision=1468 --- diff --git a/ChangeLog b/ChangeLog index 28cd6bef1..67f6bb614 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-05-28 Jürg Billeter + + * gobject/valaccodeclassbinding.vala: + + Ensure to not generate empty C structs, + patch by Jared Moore, fixes bug 533977 + 2008-05-28 Jürg Billeter * vala/valaconstant.vala: diff --git a/gobject/valaccodeclassbinding.vala b/gobject/valaccodeclassbinding.vala index b2f104bd5..e508475b8 100644 --- a/gobject/valaccodeclassbinding.vala +++ b/gobject/valaccodeclassbinding.vala @@ -111,6 +111,11 @@ public class Vala.CCodeClassBinding : CCodeObjectTypeSymbolBinding { codegen.instance_struct.add_field ("volatile int", "ref_count"); } + if (cl.is_compact && cl.base_class == null && cl.get_fields ().size == 0) { + // add dummy member, C doesn't allow empty structs + codegen.instance_struct.add_field ("int", "dummy"); + } + if (is_gtypeinstance) { if (cl.source_reference.file.cycle == null) { decl_frag.append (new CCodeTypeDefinition ("struct %s".printf (codegen.type_struct.name), new CCodeVariableDeclarator ("%sClass".printf (cl.get_cname ()))));