From: Jürg Billeter Date: Tue, 15 Jun 2010 19:35:03 +0000 (+0200) Subject: D-Bus: Fix declaration of proxy_new functions when used in other files X-Git-Tag: 0.9.2~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c6b8a5ed6e2ca4d0cd429dc1292a17c2a89a81a;p=thirdparty%2Fvala.git D-Bus: Fix declaration of proxy_new functions when used in other files --- diff --git a/codegen/valadbusclientmodule.vala b/codegen/valadbusclientmodule.vala index fde68ae4d..7616d1e81 100644 --- a/codegen/valadbusclientmodule.vala +++ b/codegen/valadbusclientmodule.vala @@ -1017,6 +1017,29 @@ public class Vala.DBusClientModule : DBusModule { } } + public override void generate_interface_declaration (Interface iface, CCodeDeclarationSpace decl_space) { + base.generate_interface_declaration (iface, decl_space); + + string dbus_iface_name = get_dbus_name (iface); + if (dbus_iface_name == null) { + return; + } + + string lower_cname = iface.get_lower_case_cprefix () + "dbus_proxy"; + + if (decl_space.add_symbol_declaration (iface, lower_cname + "_new")) { + return; + } + + // declare proxy_new function + var proxy_new = new CCodeFunction (lower_cname + "_new", iface.get_cname () + "*"); + proxy_new.add_parameter (new CCodeFormalParameter ("connection", "DBusGConnection*")); + proxy_new.add_parameter (new CCodeFormalParameter ("name", "const char*")); + proxy_new.add_parameter (new CCodeFormalParameter ("path", "const char*")); + + decl_space.add_type_member_declaration (proxy_new); + } + public override void visit_interface (Interface iface) { base.visit_interface (iface); @@ -1081,7 +1104,6 @@ public class Vala.DBusClientModule : DBusModule { new_block.add_statement (cdecl); new_block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("self"))); - source_declarations.add_type_member_declaration (proxy_new.copy ()); proxy_new.block = new_block; source_type_member_definition.append (proxy_new);