if (a != null && a.has_argument ("destroy_notify_pos")) {
return a.get_double ("destroy_notify_pos");
}
- if (node is Parameter) {
- unowned Parameter param = (Parameter) node;
- return get_ccode_pos (param) + 0.1;
- } else {
- return -3;
- }
+ return get_ccode_delegate_target_pos (node) + 0.01;
}
public static bool get_ccode_delegate_target (CodeNode node) {
var delegate_target = get_delegate_target_cexpression (arg, out delegate_target_destroy_notify);
carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), delegate_target);
if (deleg_type.is_disposable ()) {
- carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), delegate_target_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (param)), delegate_target_destroy_notify);
}
}
}
if (deleg_type.is_disposable ()) {
generate_type_declaration (delegate_target_destroy_type, decl_space);
cparam = new CCodeParameter (get_delegate_target_destroy_notify_cname ("result"), get_ccode_name (delegate_target_destroy_type) + "*");
- cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (d) + 0.01), cparam);
+ cparam_map.set (get_param_pos (get_ccode_destroy_notify_pos (d)), cparam);
}
}
}
cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (d)), cparam);
if (deleg_type.is_disposable ()) {
cparam = new CCodeParameter (get_delegate_target_destroy_notify_cname ("result"), get_ccode_name (delegate_target_destroy_type) + "*");
- cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (d) + 0.01), cparam);
+ cparam_map.set (get_param_pos (get_ccode_destroy_notify_pos (d)), cparam);
}
}
} else if (d.return_type.is_real_non_null_struct_type ()) {
carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), ctarget);
if (deleg_type.is_disposable ()) {
var ctarget_destroy_notify = new CCodeIdentifier (get_ccode_delegate_target_destroy_notify_name (d_params.get (i)));
- carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), ctarget_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (m)), ctarget_destroy_notify);
}
}
}
carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m)), ctarget);
if (deleg_type.is_disposable ()) {
var ctarget_destroy_notify = new CCodeIdentifier (get_delegate_target_destroy_notify_cname ("result"));
- carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), ctarget_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (m)), ctarget_destroy_notify);
}
}
} else if (m.return_type.is_real_non_null_struct_type ()) {
}
if (deleg_type.is_disposable ()) {
cparam = new CCodeParameter (get_ccode_delegate_target_destroy_notify_name (param), target_destroy_notify_ctypename);
- cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), cparam);
+ cparam_map.set (get_param_pos (get_ccode_destroy_notify_pos (param)), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), get_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (param)), get_cexpression (cparam.name));
}
}
}
carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param)), delegate_target);
if (deleg_type.is_disposable ()) {
assert (delegate_target_destroy_notify != null);
- carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), delegate_target_destroy_notify);
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (param)), delegate_target_destroy_notify);
}
}
}
temp_var = get_temp_variable (delegate_target_destroy_type, true, null, true);
emit_temp_var (temp_var);
set_delegate_target_destroy_notify (arg, get_variable_cexpression (temp_var.name));
- carg_map.set (get_param_pos (get_ccode_delegate_target_pos (param) + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_delegate_target_destroy_notify (arg)));
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (param)), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_delegate_target_destroy_notify (arg)));
}
}
}
emit_temp_var (temp_var);
- out_arg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (get_ccode_destroy_notify_pos (m)), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
set_delegate_target_destroy_notify (expr, temp_ref);
} else {
emit_temp_var (temp_var);
- out_arg_map.set (get_param_pos (get_ccode_delegate_target_pos (deleg) + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (get_ccode_destroy_notify_pos (deleg)), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
set_delegate_target_destroy_notify (expr, temp_ref);
}
}
if (deleg_type.is_disposable ()) {
cparam = new CCodeParameter (get_delegate_target_destroy_notify_cname ("result"), get_ccode_name (delegate_target_destroy_type) + "*");
- cparam_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), cparam);
+ cparam_map.set (get_param_pos (get_ccode_destroy_notify_pos (m)), cparam);
if (carg_map != null) {
- carg_map.set (get_param_pos (get_ccode_delegate_target_pos (m) + 0.01), get_cexpression (cparam.name));
+ carg_map.set (get_param_pos (get_ccode_destroy_notify_pos (m)), get_cexpression (cparam.name));
}
}
}