]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Support simple generics for creation methods
authorEvan Nemerson <evan@coeus-group.com>
Fri, 11 Jun 2010 05:56:51 +0000 (22:56 -0700)
committerJürg Billeter <j@bitron.ch>
Tue, 15 Jun 2010 17:58:35 +0000 (19:58 +0200)
codegen/valaccodebasemodule.vala

index 48d859faf6bb4ebaf29c9ea62d18ce6697cee17b..2cfc9bbe55d6c0a187a253c41d0e844dfb97e5ab 100644 (file)
@@ -4173,6 +4173,16 @@ public class Vala.CCodeBaseModule : CCodeModule {
 
                        if (cl != null && !cl.is_compact) {
                                add_generic_type_arguments (carg_map, expr.type_reference.get_type_arguments (), expr);
+                       } else if (cl != null && m.simple_generics) {
+                               int type_param_index = 0;
+                               foreach (var type_arg in expr.type_reference.get_type_arguments ()) {
+                                       if (requires_copy (type_arg)) {
+                                               carg_map.set (get_param_pos (-1 + 0.1 * type_param_index + 0.03), get_destroy_func_expression (type_arg));
+                                       } else {
+                                               carg_map.set (get_param_pos (-1 + 0.1 * type_param_index + 0.03), new CCodeConstant ("NULL"));
+                                       }
+                                       type_param_index++;
+                               }
                        }
 
                        bool ellipsis = false;