diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-03-06 11:40:24 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2017-03-06 15:02:43 +0100 |
commit | b4fd34897fecb8756e401c753c1d3140ed30cced (patch) | |
tree | 55032938298f98ba784db7f0e643acf3854cd016 | |
parent | 4cde696958f796a79cfdfc8f2ca78b29d145fabf (diff) | |
download | vala-b4fd34897fecb8756e401c753c1d3140ed30cced.tar.gz |
codegen: Only add _error path if there's parameters that require unref
Fixes the _error label from being set at the end of a compound statement
if there are no values to unref.
https://bugzilla.gnome.org/show_bug.cgi?id=778540
-rw-r--r-- | codegen/valagdbusservermodule.vala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala index 8f74aadb6..ff1b23624 100644 --- a/codegen/valagdbusservermodule.vala +++ b/codegen/valagdbusservermodule.vala @@ -145,8 +145,12 @@ public class Vala.GDBusServerModule : GDBusClientModule { return_error.add_argument (new CCodeIdentifier ("error")); ccode.add_expression (return_error); - ccode.add_goto ("_error"); - need_goto_label = true; + if (need_goto_label || requires_destroy (owned_type)) { + ccode.add_goto ("_error"); + need_goto_label = true; + } else { + ccode.add_return (); + } ccode.close (); } |