From: Jürg Billeter Date: Tue, 16 Dec 2008 23:38:56 +0000 (+0000) Subject: Fix private array fields in structs, fixes bug 557174 X-Git-Tag: VALA_0_5_4~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1a1ff11af2925f53fad08dfeda962707f5fecc2;p=thirdparty%2Fvala.git Fix private array fields in structs, fixes bug 557174 2008-12-17 Jürg Billeter * gobject/valaccodearraymodule.vala: Fix private array fields in structs, fixes bug 557174 svn path=/trunk/; revision=2197 --- diff --git a/ChangeLog b/ChangeLog index 508ad602a..90cb3a25d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-12-17 Jürg Billeter + + * gobject/valaccodearraymodule.vala: + + Fix private array fields in structs, fixes bug 557174 + 2008-12-16 Jürg Billeter * configure.ac: Post-release version bump diff --git a/gobject/valaccodearraymodule.vala b/gobject/valaccodearraymodule.vala index 9f8edb7fd..0e8df1979 100644 --- a/gobject/valaccodearraymodule.vala +++ b/gobject/valaccodearraymodule.vala @@ -172,16 +172,14 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { CCodeExpression length_expr = null; if (field.binding == MemberBinding.INSTANCE) { - TypeSymbol base_type = null; - if (ma.inner.value_type != null) { - base_type = ma.inner.value_type.data_type; - } + var cl = field.parent_symbol as Class; + bool is_gtypeinstance = (cl != null && !cl.is_compact); var length_cname = get_array_length_cname (field.name, dim); CCodeExpression typed_inst = (CCodeExpression) get_ccodenode (ma.inner); CCodeExpression inst; - if (field.access == SymbolAccessibility.PRIVATE) { + if (is_gtypeinstance && field.access == SymbolAccessibility.PRIVATE) { inst = new CCodeMemberAccess.pointer (typed_inst, "priv"); } else { inst = typed_inst;