[vala] codegen: Omit free function from unowned simple generic arguments



commit a6ea3d325d8d1b018d3322dc3e6e65bc76d26681
Author: Evan Nemerson <evan coeus-group com>
Date:   Sun Nov 7 00:25:08 2010 -0700

    codegen: Omit free function from unowned simple generic arguments
    
    Fixes bug 627198.

 codegen/valaccodemethodcallmodule.vala |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala
index dd7e499..f37d57f 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"));
+									}
 								}
 							}
 						}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]