From: Juerg Billeter Date: Mon, 12 May 2008 21:15:24 +0000 (+0000) Subject: support methods throwing exceptions in D-Bus services, patch by Ali Sabil X-Git-Tag: VALA_0_3_2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5158b723d48a050e9f58c0ccaebece9fa9b5da2e;p=platform%2Fupstream%2Fvala.git support methods throwing exceptions in D-Bus services, patch by Ali Sabil 2008-05-12 Juerg Billeter * gobject/valaccodeclassbinding.vala: support methods throwing exceptions in D-Bus services, patch by Ali Sabil svn path=/trunk/; revision=1381 --- diff --git a/ChangeLog b/ChangeLog index 6263eba..a641b88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2008-05-12 Jürg Billeter + * gobject/valaccodeclassbinding.vala: support methods throwing + exceptions in D-Bus services, patch by Ali Sabil + +2008-05-12 Jürg Billeter + * doc/vala/namespaces.xml: Extend namespaces section, based on patch by Phil Housley diff --git a/gobject/valaccodeclassbinding.vala b/gobject/valaccodeclassbinding.vala index 6899ba7..9bb0c3e 100644 --- a/gobject/valaccodeclassbinding.vala +++ b/gobject/valaccodeclassbinding.vala @@ -769,15 +769,27 @@ public class Vala.CCodeClassBinding : CCodeTypesymbolBinding { continue; } + Gee.Collection parameters; + + if (m.get_error_domains ().size > 0) { + parameters = new Gee.ArrayList (); + foreach (FormalParameter param in m.get_parameters ()) { + parameters.add (param); + } + parameters.add (new FormalParameter ("error", codegen.gerror_type)); + } else { + parameters = m.get_parameters (); + } + dbus_methods.append ("{ (GCallback) "); dbus_methods.append (m.get_cname ()); dbus_methods.append (", "); - dbus_methods.append (codegen.get_marshaller_function (m.get_parameters (), m.return_type)); + dbus_methods.append (codegen.get_marshaller_function (parameters, m.return_type)); dbus_methods.append (", "); dbus_methods.append (blob_len.to_string ()); dbus_methods.append (" },\n"); - codegen.generate_marshaller (m.get_parameters (), m.return_type); + codegen.generate_marshaller (parameters, m.return_type); long start = blob.len;