diff options
Diffstat (limited to 'gobject/valaccodeobjecttypesymbolbinding.vala')
-rw-r--r-- | gobject/valaccodeobjecttypesymbolbinding.vala | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gobject/valaccodeobjecttypesymbolbinding.vala b/gobject/valaccodeobjecttypesymbolbinding.vala index 2298b080c..e64f55848 100644 --- a/gobject/valaccodeobjecttypesymbolbinding.vala +++ b/gobject/valaccodeobjecttypesymbolbinding.vala @@ -35,6 +35,18 @@ public abstract class Vala.CCodeObjectTypeSymbolBinding : Vala.CCodeTypeSymbolBi return true; } + string dbus_result_name (CodeNode node) { + var dbus_attribute = node.get_attribute ("DBus"); + if (dbus_attribute != null + && dbus_attribute.has_argument ("result")) { + var result_name = dbus_attribute.get_string ("result"); + if (result_name != null && result_name != "") + return result_name; + } + + return "result"; + } + public CCodeFragment register_dbus_info (ObjectTypeSymbol bindable) { CCodeFragment fragment = new CCodeFragment (); @@ -125,7 +137,8 @@ public abstract class Vala.CCodeObjectTypeSymbolBinding : Vala.CCodeTypeSymbolBi } if (!(m.return_type is VoidType)) { - blob.append ("result\\0"); + blob.append (dbus_result_name (m)); + blob.append ("\\0"); start++; blob.append ("O\\0"); |