]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Use destroy_field in finalizers
authorJürg Billeter <j@bitron.ch>
Wed, 23 Feb 2011 07:22:39 +0000 (08:22 +0100)
committerJürg Billeter <j@bitron.ch>
Wed, 23 Feb 2011 07:22:39 +0000 (08:22 +0100)
codegen/valaccodebasemodule.vala

index 4bba12caf960ccf88a352630888f141dca127b05..5a8f4058aa1883efc75ba0a42cdd3f8b6628c6ab 100644 (file)
@@ -1012,11 +1012,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                                        set_cvalue (this_access, new CCodeIdentifier ("self"));
                                }
 
-                               var ma = new MemberAccess (this_access, f.name);
-                               ma.symbol_reference = f;
-                               ma.value_type = f.variable_type.copy ();
-                               visit_member_access (ma);
-                               ccode.add_expression (get_unref_expression (lhs, f.variable_type, ma));
+                               ccode.add_expression (destroy_field (f, this_access));
 
                                pop_context ();
                        }
@@ -5819,17 +5815,11 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                foreach (Field f in st.get_fields ()) {
                        if (f.binding == MemberBinding.INSTANCE) {
                                if (requires_destroy (f.variable_type)) {
-                                       var lhs = new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), f.get_cname ());
-
                                        var this_access = new MemberAccess.simple ("this");
                                        this_access.value_type = get_data_type_for_symbol ((TypeSymbol) f.parent_symbol);
                                        set_cvalue (this_access, new CCodeIdentifier ("(*self)"));
 
-                                       var ma = new MemberAccess (this_access, f.name);
-                                       ma.symbol_reference = f;
-                                       ma.value_type = f.variable_type.copy ();
-                                       visit_member_access (ma);
-                                       ccode.add_expression (get_unref_expression (lhs, f.variable_type, ma));
+                                       ccode.add_expression (destroy_field (f, this_access));
                                }
                        }
                }