]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
GAsync: Use destroy_local and destroy_parameter in generate_free_function
authorLuca Bruno <lucabru@src.gnome.org>
Wed, 4 May 2011 20:04:53 +0000 (22:04 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Wed, 4 May 2011 20:06:39 +0000 (22:06 +0200)
codegen/valagasyncmodule.vala

index 135b5398ac276f3a0bf7ead31ed5162e1e0f6e25..a5b2edec2997ddbba7c7594d65b3f095bdf0dbd4 100644 (file)
@@ -117,12 +117,7 @@ public class Vala.GAsyncModule : GSignalModule {
                if (requires_destroy (m.return_type)) {
                        /* this is very evil. */
                        var v = new LocalVariable (m.return_type, ".result");
-                       var ma = new MemberAccess.simple (".result");
-                       ma.symbol_reference = v;
-                       ma.value_type = v.variable_type.copy ();
-                       visit_member_access (ma);
-                       var unref_expr = get_unref_expression (new CCodeMemberAccess.pointer (new CCodeIdentifier ("data"), "result"), m.return_type, ma);
-                       ccode.add_expression (unref_expr);
+                       ccode.add_expression (destroy_local (v));
                }
 
                if (m.binding == MemberBinding.INSTANCE) {
@@ -130,11 +125,7 @@ public class Vala.GAsyncModule : GSignalModule {
                        this_type.value_owned = true;
 
                        if (requires_destroy (this_type)) {
-                               var ma = new MemberAccess.simple ("this");
-                               ma.symbol_reference = m.this_parameter;
-                               ma.value_type = m.this_parameter.variable_type.copy ();
-                               visit_member_access (ma);
-                               ccode.add_expression (get_unref_expression (new CCodeMemberAccess.pointer (new CCodeIdentifier ("data"), "self"), m.this_parameter.variable_type, ma));
+                               ccode.add_expression (destroy_parameter (m.this_parameter));
                        }
                }