]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix typedef generation for private types, patch by Yu Feng, fixes bug
authorJürg Billeter <j@bitron.ch>
Fri, 16 Jan 2009 15:54:16 +0000 (15:54 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Fri, 16 Jan 2009 15:54:16 +0000 (15:54 +0000)
2009-01-16  Jürg Billeter  <j@bitron.ch>

* gobject/valaccodestructmodule.vala:
* gobject/valagobjectmodule.vala:

Fix typedef generation for private types, patch by Yu Feng,
fixes bug 567237

svn path=/trunk/; revision=2353

ChangeLog
gobject/valaccodestructmodule.vala
gobject/valagobjectmodule.vala

index a133634e5f5aacbc2d6f065262742d2eb2bb907c..caa3ba0c48ebc38e3edd286d452c19132848a211 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-01-16  Jürg Billeter  <j@bitron.ch>
+
+       * 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  <j@bitron.ch>
 
        * gobject/valaccodebasemodule.vala:
index 24675bbb8e06b7572c97cb6c91ab321fb98ec6ad..94f11070293c7ae59fcaa3328dfbd4fdb73bd11e 100644 (file)
@@ -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 ())));
                }
 
index ed2750d84fa9741401b7eba7befa33745389aaa8..e06b589095a32acc6c08b7b43029e817b19a58d6 100644 (file)
@@ -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 ()))));