]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Return default_value_on_error on precondition failures
authorSergey Bugaev <bugaevc@gmail.com>
Mon, 28 Apr 2025 07:37:58 +0000 (10:37 +0300)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 11 May 2025 20:04:54 +0000 (22:04 +0200)
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.

codegen/valaccodemethodmodule.vala
codegen/valagtypemodule.vala

index 41099ab5149c720d06c20e16add5f06de5c8ad0a..81be9ece1d6c0291869b341e4ec6d448dc81e420 100644 (file)
@@ -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 {
index ec103d2f4f048092f6cc47ebe365674a7adc3297..27d9daf9c9615f2a88ad7a0c650092ff5d366d21 100644 (file)
@@ -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 ()) {