From: Sergey Bugaev Date: Mon, 28 Apr 2025 07:37:58 +0000 (+0300) Subject: codegen: Return default_value_on_error on precondition failures X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c502d8e59909b5b2f870bb1d82a3880e0a1810bc;p=thirdparty%2Fvala.git codegen: Return default_value_on_error on precondition failures This way, we get -1 for integers, G_TYPE_INVALID for GType, etc. The returned value doesn't really matter since this is an assertion failure in any case, but this is what's usually done in C code. --- diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala index 41099ab51..81be9ece1 100644 --- a/codegen/valaccodemethodmodule.vala +++ b/codegen/valaccodemethodmodule.vala @@ -1321,7 +1321,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule { } else { ccheck.call = new CCodeIdentifier ("_vala_return_val_if_fail"); - var cdefault = default_value_for_type (ret_type, false); + var cdefault = default_value_for_type (ret_type, false, true); if (cdefault != null) { ccheck.add_argument (cdefault); } else { diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index ec103d2f4..27d9daf9c 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -2506,7 +2506,7 @@ public class Vala.GTypeModule : GErrorModule { } else { ccheck.call = new CCodeIdentifier ("g_return_val_if_fail"); - var cdefault = default_value_for_type (ret_type, false); + var cdefault = default_value_for_type (ret_type, false, true); if (cdefault != null) { ccheck.add_argument (cdefault); } else if (ret_type.type_symbol is Struct && !((Struct) ret_type.type_symbol).is_simple_type ()) {