diff options
author | Jürg Billeter <j@bitron.ch> | 2011-01-15 17:50:28 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2011-01-15 17:50:28 +0100 |
commit | 1e68b9ae371c00c89d0893b9c67ad0c00f5b5a28 (patch) | |
tree | 71bb45e5fc3241cafeb959dc42679e937ed5d48d /codegen/valagdbusservermodule.vala | |
parent | 76738dae7790b249d0599857a5603b392ed85691 (diff) | |
download | vala-1e68b9ae371c00c89d0893b9c67ad0c00f5b5a28.tar.gz |
D-Bus: Support get_proxy with generic type in GDBus clients
Fixes bug 612517.
Diffstat (limited to 'codegen/valagdbusservermodule.vala')
-rw-r--r-- | codegen/valagdbusservermodule.vala | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala index c9c7c03f3..c121728b0 100644 --- a/codegen/valagdbusservermodule.vala +++ b/codegen/valagdbusservermodule.vala @@ -1323,20 +1323,22 @@ public class Vala.GDBusServerModule : GDBusClientModule { cfile.add_function (cfunc); } - public override void register_dbus_info (ObjectTypeSymbol sym) { + public override void register_dbus_info (CCodeBlock block, ObjectTypeSymbol sym) { string dbus_iface_name = get_dbus_name (sym); if (dbus_iface_name == null) { return; } + base.register_dbus_info (block, sym); + var quark = new CCodeFunctionCall (new CCodeIdentifier ("g_quark_from_static_string")); quark.add_argument (new CCodeConstant ("\"vala-dbus-register-object\"")); var set_qdata = new CCodeFunctionCall (new CCodeIdentifier ("g_type_set_qdata")); - set_qdata.add_argument (new CCodeIdentifier (sym.get_upper_case_cname ("TYPE_"))); + set_qdata.add_argument (new CCodeIdentifier ("%s_type_id".printf (sym.get_lower_case_cname (null)))); set_qdata.add_argument (quark); set_qdata.add_argument (new CCodeCastExpression (new CCodeIdentifier (sym.get_lower_case_cprefix () + "register_object"), "void*")); - ccode.add_expression (set_qdata); + block.add_statement (new CCodeExpressionStatement (set_qdata)); } } |