summaryrefslogtreecommitdiff
path: root/codegen/valaccodebasemodule.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-04-18 21:02:21 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2021-04-19 08:56:10 +0200
commitb165d688020a459567b93dd479e87c5fee50d21d (patch)
treeeb6b74cc8829d1c154158140f820d7e54d3b2463 /codegen/valaccodebasemodule.vala
parent58675b60f6246a27e2b2e8129d631a1aba7c5078 (diff)
downloadvala-b165d688020a459567b93dd479e87c5fee50d21d.tar.gz
codegen: Use if-clause for is_in_destructor() condition to be more clear
Diffstat (limited to 'codegen/valaccodebasemodule.vala')
-rw-r--r--codegen/valaccodebasemodule.vala14
1 files changed, 9 insertions, 5 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 759a8499c..c7b44e4e6 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -2238,11 +2238,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);
}