From: Jürg Billeter Date: Fri, 16 Jan 2009 15:54:16 +0000 (+0000) Subject: Fix typedef generation for private types, patch by Yu Feng, fixes bug X-Git-Tag: VALA_0_5_6~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e80cfb0ab358c4c28008b723754eb31b1b2432ac;p=thirdparty%2Fvala.git Fix typedef generation for private types, patch by Yu Feng, fixes bug 2009-01-16 Jürg Billeter * gobject/valaccodestructmodule.vala: * gobject/valagobjectmodule.vala: Fix typedef generation for private types, patch by Yu Feng, fixes bug 567237 svn path=/trunk/; revision=2353 --- diff --git a/ChangeLog b/ChangeLog index a133634e5..caa3ba0c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-01-16 Jürg Billeter + + * gobject/valaccodestructmodule.vala: + * gobject/valagobjectmodule.vala: + + Fix typedef generation for private types, patch by Yu Feng, + fixes bug 567237 + 2009-01-16 Jürg Billeter * gobject/valaccodebasemodule.vala: diff --git a/gobject/valaccodestructmodule.vala b/gobject/valaccodestructmodule.vala index 24675bbb8..94f110702 100644 --- a/gobject/valaccodestructmodule.vala +++ b/gobject/valaccodestructmodule.vala @@ -46,7 +46,9 @@ public class Vala.CCodeStructModule : CCodeBaseModule { def_frag = source_type_definition; } - if (st.source_reference.file.cycle == null) { + if (st.access == SymbolAccessibility.PRIVATE + || st.source_reference.file.cycle == null) { + // no file dependency cycle for private symbols decl_frag.append (new CCodeTypeDefinition ("struct _%s".printf (st.get_cname ()), new CCodeVariableDeclarator (st.get_cname ()))); } diff --git a/gobject/valagobjectmodule.vala b/gobject/valagobjectmodule.vala index ed2750d84..e06b58909 100644 --- a/gobject/valagobjectmodule.vala +++ b/gobject/valagobjectmodule.vala @@ -109,7 +109,9 @@ public class Vala.GObjectModule : GTypeModule { } - if (cl.source_reference.file.cycle == null) { + if (cl.access == SymbolAccessibility.PRIVATE + || cl.source_reference.file.cycle == null) { + // no file dependency cycle for private symbols decl_frag.append (new CCodeTypeDefinition ("struct %s".printf (instance_struct.name), new CCodeVariableDeclarator (cl.get_cname ()))); } @@ -126,7 +128,9 @@ public class Vala.GObjectModule : GTypeModule { } if (is_gtypeinstance) { - if (cl.source_reference.file.cycle == null) { + if (cl.access == SymbolAccessibility.PRIVATE + || cl.source_reference.file.cycle == null) { + // no file dependency cycle for private symbols decl_frag.append (new CCodeTypeDefinition ("struct %s".printf (type_struct.name), new CCodeVariableDeclarator ("%sClass".printf (cl.get_cname ())))); } decl_frag.append (new CCodeTypeDefinition ("struct %s".printf (instance_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (cl.get_cname ()))));