summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-03-06 11:40:24 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2017-03-06 15:02:43 +0100
commitb4fd34897fecb8756e401c753c1d3140ed30cced (patch)
tree55032938298f98ba784db7f0e643acf3854cd016
parent4cde696958f796a79cfdfc8f2ca78b29d145fabf (diff)
downloadvala-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.vala8
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 ();
}