[vala/0.34] gdbus: Ensure extracted data from the GVariant is freed on error
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/0.34] gdbus: Ensure extracted data from the GVariant is freed on error
- Date: Wed, 1 Mar 2017 10:21:36 +0000 (UTC)
commit 5a8b27d4d0c1078da8527d77da51acac7c2828c4
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Feb 12 23:02:34 2017 +0100
gdbus: Ensure extracted data from the GVariant is freed on error
This will make extracted variables properly freed when extracting those
fails at some point.
https://bugzilla.gnome.org/show_bug.cgi?id=778540
codegen/valagdbusservermodule.vala | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala
index ccef898..b7592df 100644
--- a/codegen/valagdbusservermodule.vala
+++ b/codegen/valagdbusservermodule.vala
@@ -23,6 +23,7 @@
public class Vala.GDBusServerModule : GDBusClientModule {
string generate_dbus_wrapper (Method m, ObjectTypeSymbol sym, bool ready = false) {
string wrapper_name = "_dbus_%s".printf (get_ccode_name (m));
+ bool need_goto_label = false;
if (m.base_method != null) {
m = m.base_method;
@@ -142,7 +143,8 @@ public class Vala.GDBusServerModule : GDBusClientModule {
return_error.add_argument (new CCodeIdentifier ("error"));
ccode.add_expression (return_error);
- ccode.add_return ();
+ ccode.add_goto ("_error");
+ need_goto_label = true;
ccode.close ();
}
@@ -338,6 +340,10 @@ public class Vala.GDBusServerModule : GDBusClientModule {
ccode.add_expression (ccall);
}
+ if (need_goto_label) {
+ ccode.add_label ("_error");
+ }
+
foreach (Parameter param in m.get_parameters ()) {
if ((param.direction == ParameterDirection.IN && !ready) ||
(param.direction == ParameterDirection.OUT && !no_reply && (!m.coroutine ||
ready))) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]