]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix lock statement when used on non-private fields
authorJürg Billeter <j@bitron.ch>
Wed, 20 May 2009 15:14:47 +0000 (17:14 +0200)
committerJürg Billeter <j@bitron.ch>
Wed, 20 May 2009 15:15:38 +0000 (17:15 +0200)
Fixes bug 579613.

codegen/valagtypemodule.vala

index abf366d0ffacda5f0ba79d81eaa30c569dc3dc6c..499af041013137c3d1e9b21e54d7d0dcca11e77d 100644 (file)
@@ -341,27 +341,29 @@ internal class Vala.GTypeModule : GErrorModule {
                                field_ctype = "volatile " + field_ctype;
                        }
 
-                       if (f.binding == MemberBinding.INSTANCE && f.access == SymbolAccessibility.PRIVATE)  {
-                               generate_type_declaration (f.field_type, decl_space);
-
-                               instance_priv_struct.add_field (field_ctype, f.get_cname ());
-                               if (f.field_type is ArrayType && !f.no_array_length) {
-                                       // create fields to store array dimensions
-                                       var array_type = (ArrayType) f.field_type;
-                                       var len_type = int_type.copy ();
-
-                                       for (int dim = 1; dim <= array_type.rank; dim++) {
-                                               instance_priv_struct.add_field (len_type.get_cname (), head.get_array_length_cname (f.name, dim));
-                                       }
+                       if (f.binding == MemberBinding.INSTANCE) {
+                               if (f.access == SymbolAccessibility.PRIVATE)  {
+                                       generate_type_declaration (f.field_type, decl_space);
+
+                                       instance_priv_struct.add_field (field_ctype, f.get_cname ());
+                                       if (f.field_type is ArrayType && !f.no_array_length) {
+                                               // create fields to store array dimensions
+                                               var array_type = (ArrayType) f.field_type;
+                                               var len_type = int_type.copy ();
+
+                                               for (int dim = 1; dim <= array_type.rank; dim++) {
+                                                       instance_priv_struct.add_field (len_type.get_cname (), head.get_array_length_cname (f.name, dim));
+                                               }
 
-                                       if (array_type.rank == 1 && f.is_internal_symbol ()) {
-                                               instance_priv_struct.add_field (len_type.get_cname (), head.get_array_size_cname (f.name));
-                                       }
-                               } else if (f.field_type is DelegateType) {
-                                       var delegate_type = (DelegateType) f.field_type;
-                                       if (delegate_type.delegate_symbol.has_target) {
-                                               // create field to store delegate target
-                                               instance_priv_struct.add_field ("gpointer", get_delegate_target_cname (f.name));
+                                               if (array_type.rank == 1 && f.is_internal_symbol ()) {
+                                                       instance_priv_struct.add_field (len_type.get_cname (), head.get_array_size_cname (f.name));
+                                               }
+                                       } else if (f.field_type is DelegateType) {
+                                               var delegate_type = (DelegateType) f.field_type;
+                                               if (delegate_type.delegate_symbol.has_target) {
+                                                       // create field to store delegate target
+                                                       instance_priv_struct.add_field ("gpointer", get_delegate_target_cname (f.name));
+                                               }
                                        }
                                }