From: Jürg Billeter Date: Fri, 28 Nov 2008 21:39:15 +0000 (+0000) Subject: Fix generated code in struct destroy function for array fields X-Git-Tag: VALA_0_5_2~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a12fc800768ce9db6957fc3a897b012b8d9bf499;p=thirdparty%2Fvala.git Fix generated code in struct destroy function for array fields 2008-11-28 Jürg Billeter * gobject/valaccodebasemodule.vala: Fix generated code in struct destroy function for array fields svn path=/trunk/; revision=2081 --- diff --git a/ChangeLog b/ChangeLog index 0dd7d2a3e..db37e49c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-11-28 Jürg Billeter + + * gobject/valaccodebasemodule.vala: + + Fix generated code in struct destroy function for array fields + 2008-11-28 Jürg Billeter * vapigen/valagidlparser.vala: diff --git a/gobject/valaccodebasemodule.vala b/gobject/valaccodebasemodule.vala index 107d32123..88662c3d6 100644 --- a/gobject/valaccodebasemodule.vala +++ b/gobject/valaccodebasemodule.vala @@ -854,7 +854,14 @@ public class Vala.CCodeBaseModule : CCodeModule { if (requires_destroy (f.field_type) && instance_finalize_fragment != null) { var this_access = new MemberAccess.simple ("this"); this_access.value_type = get_data_type_for_symbol ((TypeSymbol) f.parent_symbol); - this_access.ccodenode = new CCodeIdentifier ("self"); + + var st = f.parent_symbol as Struct; + if (st != null && !st.is_simple_type ()) { + this_access.ccodenode = new CCodeIdentifier ("(*self)"); + } else { + this_access.ccodenode = new CCodeIdentifier ("self"); + } + var ma = new MemberAccess (this_access, f.name); ma.symbol_reference = f; instance_finalize_fragment.append (new CCodeExpressionStatement (get_unref_expression (lhs, f.field_type, ma)));