From: Evan Nemerson Date: Fri, 11 Jun 2010 05:56:51 +0000 (-0700) Subject: Support simple generics for creation methods X-Git-Tag: 0.9.2~54 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9712fd59d05a636575303cecb4aaac62e2134f4d;p=thirdparty%2Fvala.git Support simple generics for creation methods --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 48d859faf..2cfc9bbe5 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -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;