]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
dova: Fix use of interfaces in generics
authorJürg Billeter <j@bitron.ch>
Wed, 21 Jul 2010 07:05:15 +0000 (09:05 +0200)
committerJürg Billeter <j@bitron.ch>
Wed, 21 Jul 2010 07:05:15 +0000 (09:05 +0200)
Fixes bug 613640.

codegen/valadovaobjectmodule.vala

index 1db3c62972cb067c30794b4b5dd2d8d9a530ef16..e4e47613e01bda62fbd4968cded56778172d0982 100644 (file)
@@ -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 ()) {