[vala] Fix lock statement when used on non-private fields



commit aca5b39a0a04b14221aaf97d8201b14f0328082b
Author: Jürg Billeter <j bitron ch>
Date:   Wed May 20 17:14:47 2009 +0200

    Fix lock statement when used on non-private fields
    
    Fixes bug 579613.
---
 codegen/valagtypemodule.vala |   44 +++++++++++++++++++++--------------------
 1 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index abf366d..499af04 100644
--- a/codegen/valagtypemodule.vala
+++ b/codegen/valagtypemodule.vala
@@ -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));
+						}
 					}
 				}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]