[vala] Fix lock statement when used on non-private fields
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Subject: [vala] Fix lock statement when used on non-private fields
- Date: Wed, 20 May 2009 11:16:02 -0400 (EDT)
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]