diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-04-06 13:00:16 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-04-08 08:33:16 +0200 |
commit | abd762bf6df3dde786dc1891bd5405560f511158 (patch) | |
tree | a4ed290759419e4656be2b0fb3905e92253f3696 | |
parent | 0b98a2f368853cd62bef09dd2676d9c1e4ca2922 (diff) | |
download | vala-abd762bf6df3dde786dc1891bd5405560f511158.tar.gz |
codegen: Fix default value of get_ccode_destroy_notify_pos() and make use of it
-rw-r--r-- | codegen/valaccode.vala | 7 | ||||
-rw-r--r-- | codegen/valaccodebasemodule.vala | 2 | ||||
-rw-r--r-- | codegen/valaccodedelegatemodule.vala | 12 | ||||
-rw-r--r-- | codegen/valaccodemethodcallmodule.vala | 8 | ||||
-rw-r--r-- | codegen/valaccodemethodmodule.vala | 4 |
5 files changed, 14 insertions, 19 deletions
diff --git a/codegen/valaccode.vala b/codegen/valaccode.vala index 7671b2c50..9b1da33f7 100644 --- a/codegen/valaccode.vala +++ b/codegen/valaccode.vala @@ -365,12 +365,7 @@ namespace Vala { 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) { diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 94d16e3b1..4d44d0a7e 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -4979,7 +4979,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { 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); } } } diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala index b0770a5a0..dc54d636c 100644 --- a/codegen/valaccodedelegatemodule.vala +++ b/codegen/valaccodedelegatemodule.vala @@ -77,7 +77,7 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule { 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); } } } @@ -244,7 +244,7 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule { 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 ()) { @@ -343,7 +343,7 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule { 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); } } } @@ -369,7 +369,7 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule { 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 ()) { @@ -488,9 +488,9 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule { } 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)); } } } diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala index 461e89735..66f2d8818 100644 --- a/codegen/valaccodemethodcallmodule.vala +++ b/codegen/valaccodemethodcallmodule.vala @@ -437,7 +437,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { 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); } } } @@ -491,7 +491,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { 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))); } } } @@ -612,7 +612,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { 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 { @@ -677,7 +677,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { 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); } diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala index e68412755..3c26c198e 100644 --- a/codegen/valaccodemethodmodule.vala +++ b/codegen/valaccodemethodmodule.vala @@ -89,9 +89,9 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule { } 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)); } } } |