From: Jürg Billeter Date: Wed, 21 Jul 2010 07:05:15 +0000 (+0200) Subject: dova: Fix use of interfaces in generics X-Git-Tag: 0.9.4~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f77453f40027f9e21c0ba6828cef9b16c26a9b63;p=thirdparty%2Fvala.git dova: Fix use of interfaces in generics Fixes bug 613640. --- diff --git a/codegen/valadovaobjectmodule.vala b/codegen/valadovaobjectmodule.vala index 1db3c6297..e4e47613e 100644 --- a/codegen/valadovaobjectmodule.vala +++ b/codegen/valadovaobjectmodule.vala @@ -961,6 +961,11 @@ internal class Vala.DovaObjectModule : DovaArrayModule { type_init_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ())), calloc_call))); + // call any_type_init to set value_copy and similar functions + var any_type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("any_type_init")); + any_type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ()))); + type_init_block.add_statement (new CCodeExpressionStatement (any_type_init_call)); + var type_init_call = new CCodeFunctionCall (new CCodeIdentifier ("%s_type_init".printf (iface.get_lower_case_cname ()))); type_init_call.add_argument (new CCodeIdentifier ("%s_type".printf (iface.get_lower_case_cname ()))); foreach (var type_param in iface.get_type_parameters ()) {