From: Rico Tzschichholz Date: Sun, 18 Apr 2021 19:02:21 +0000 (+0200) Subject: codegen: Use if-clause for is_in_destructor() condition to be more clear X-Git-Tag: 0.50.8~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dcd704590e9ca802fb72f1a24263bf81b2a96b8a;p=thirdparty%2Fvala.git codegen: Use if-clause for is_in_destructor() condition to be more clear --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index d746f6050..c00ddc7be 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -2193,11 +2193,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); }