From: Jürg Billeter Date: Wed, 20 May 2009 15:14:47 +0000 (+0200) Subject: Fix lock statement when used on non-private fields X-Git-Tag: 0.7.3~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aca5b39a0a04b14221aaf97d8201b14f0328082b;p=thirdparty%2Fvala.git Fix lock statement when used on non-private fields Fixes bug 579613. --- diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index abf366d0f..499af0410 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)); + } } }