From: Carlos Garnacho Date: Tue, 31 Jul 2018 22:29:27 +0000 (+0200) Subject: codegen: Free errors after returning them on the GDBusMethodInvocation X-Git-Tag: 0.41.91~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93cfba91bd50849a74e372cf66975fcaf31dfcba;p=thirdparty%2Fvala.git codegen: Free errors after returning them on the GDBusMethodInvocation Those are being leaked otherwise. Fixes https://gitlab.gnome.org/GNOME/vala/issues/657 --- diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala index 3506bc655..e1984e24f 100644 --- a/codegen/valagdbusservermodule.vala +++ b/codegen/valagdbusservermodule.vala @@ -180,6 +180,10 @@ public class Vala.GDBusServerModule : GDBusClientModule { return_error.add_argument (new CCodeIdentifier ("error")); ccode.add_expression (return_error); + var free_error = new CCodeFunctionCall (new CCodeIdentifier ("g_error_free")); + free_error.add_argument (new CCodeIdentifier ("error")); + ccode.add_expression (free_error); + if (need_goto_label || requires_destroy (owned_type)) { ccode.add_goto ("_error"); need_goto_label = true; @@ -289,6 +293,10 @@ public class Vala.GDBusServerModule : GDBusClientModule { return_error.add_argument (new CCodeIdentifier ("error")); ccode.add_expression (return_error); + var free_error = new CCodeFunctionCall (new CCodeIdentifier ("g_error_free")); + free_error.add_argument (new CCodeIdentifier ("error")); + ccode.add_expression (free_error); + if (need_goto_label) { ccode.add_goto ("_error"); } else {