[vala/0.48] codegen: Use if-clause for is_in_destructor() condition to be more clear



commit 0f67d0b7d6afcec9ae880dee38437e289e654c39
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sun Apr 18 21:02:21 2021 +0200

    codegen: Use if-clause for is_in_destructor() condition to be more clear

 codegen/valaccodebasemodule.vala | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 1d10e7729..af55c0c8c 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -2166,11 +2166,15 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                                unowned DataType? this_type = get_this_type ();
                                if (this_type != null && (!in_creation_method_with_chainup || 
current_method.body != b)) {
-                                       var ref_call = new CCodeFunctionCall (get_dup_func_expression 
(this_type, b.source_reference));
-                                       ref_call.add_argument (get_this_cexpression ());
-
-                                       // never increase reference count for self in finalizers to avoid 
infinite recursion on following unref
-                                       var instance = (is_in_destructor () ? (CCodeExpression) new 
CCodeIdentifier ("self") : (CCodeExpression) ref_call);
+                                       CCodeExpression instance;
+                                       if (is_in_destructor ()) {
+                                               // never increase reference count for self in finalizers to 
avoid infinite recursion on following unref
+                                               instance = new CCodeIdentifier ("self");
+                                       } else {
+                                               var ref_call = new CCodeFunctionCall (get_dup_func_expression 
(this_type, b.source_reference));
+                                               ref_call.add_argument (get_this_cexpression ());
+                                               instance = ref_call;
+                                       }
 
                                        ccode.add_assignment (new CCodeMemberAccess.pointer 
(get_variable_cexpression ("_data%d_".printf (block_id)), "self"), instance);
                                }


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