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.cparameter_position + 0.1), get_destroy_func_expression (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.cparameter_position + 0.1), new CCodeConstant ("NULL"));
+ carg_map.set (get_param_pos (param.cdestroy_notify_parameter_position), new CCodeConstant ("NULL"));
}
}
}
/* valadelegate.vala
*
- * Copyright (C) 2006-2009 Jürg Billeter
+ * Copyright (C) 2006-2010 Jürg Billeter
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
param.cparameter_position = parameters.size + 1;
param.carray_length_parameter_position = param.cparameter_position + 0.1;
param.cdelegate_target_parameter_position = param.cparameter_position + 0.1;
+ param.cdestroy_notify_parameter_position = param.cparameter_position + 0.1;
parameters.add (param);
scope.add (param.name, param);
/* valaformalparameter.vala
*
- * Copyright (C) 2006-2009 Jürg Billeter
+ * Copyright (C) 2006-2010 Jürg Billeter
* Copyright (C) 2006-2008 Raffaele Sandrini
*
* This library is free software; you can redistribute it and/or
*/
public double cdelegate_target_parameter_position { get; set; }
+ public double cdestroy_notify_parameter_position { get; set; }
+
/**
* Specifies the type of the parameter in the C function.
*/
if (a.has_argument ("delegate_target_pos")) {
cdelegate_target_parameter_position = a.get_double ("delegate_target_pos");
}
+ if (a.has_argument ("destroy_notify_pos")) {
+ cdestroy_notify_parameter_position = a.get_double ("destroy_notify_pos");
+ }
}
/**
param.cparameter_position = parameters.size + 1;
param.carray_length_parameter_position = param.cparameter_position + 0.1;
param.cdelegate_target_parameter_position = param.cparameter_position + 0.1;
+ param.cdestroy_notify_parameter_position = param.cparameter_position + 0.1;
parameters.add (param);
if (!param.ellipsis) {
/* valasignal.vala
*
- * Copyright (C) 2006-2009 Jürg Billeter
+ * Copyright (C) 2006-2010 Jürg Billeter
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
param.cparameter_position = parameters.size + 1;
param.carray_length_parameter_position = param.cparameter_position + 0.1;
param.cdelegate_target_parameter_position = param.cparameter_position + 0.1;
+ param.cdestroy_notify_parameter_position = param.cparameter_position + 0.1;
parameters.add (param);
scope.add (param.name, param);