From: Evan Nemerson Date: Sun, 7 Nov 2010 07:25:08 +0000 (-0700) Subject: codegen: Omit free function from unowned simple generic arguments X-Git-Tag: 0.11.2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a6ea3d325d8d1b018d3322dc3e6e65bc76d26681;p=thirdparty%2Fvala.git codegen: Omit free function from unowned simple generic arguments Fixes bug 627198. --- diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala index dd7e499d0..f37d57f2c 100644 --- a/codegen/valaccodemethodcallmodule.vala +++ b/codegen/valaccodemethodcallmodule.vala @@ -383,10 +383,12 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var generic_type = (GenericType) param.variable_type; int type_param_index = m.get_type_parameter_index (generic_type.type_parameter.name); var type_arg = ma.get_type_arguments ().get (type_param_index); - if (requires_copy (type_arg)) { - carg_map.set (get_param_pos (param.cdestroy_notify_parameter_position), get_destroy_func_expression (type_arg)); - } else { - carg_map.set (get_param_pos (param.cdestroy_notify_parameter_position), new CCodeConstant ("NULL")); + if (param.variable_type.value_owned) { + if (requires_copy (type_arg)) { + carg_map.set (get_param_pos (param.cdestroy_notify_parameter_position), get_destroy_func_expression (type_arg)); + } else { + carg_map.set (get_param_pos (param.cdestroy_notify_parameter_position), new CCodeConstant ("NULL")); + } } } }