]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Replace invalid array-length assert with internal error
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 4 Oct 2018 12:02:18 +0000 (14:02 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Mon, 8 Oct 2018 08:30:53 +0000 (10:30 +0200)
While the test-suite triggers this assert with an invalid test an explicit
crash is not wanted.

codegen/valaccodearraymodule.vala

index cd93775122421edb2af70b76ca7a73593df06ac7..32f42545c224fe826b24bf814e05b2061810e5cd 100644 (file)
@@ -147,7 +147,10 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                }
 
                List<CCodeExpression> size = ((GLibValue) value).array_length_cvalues;
-               assert (size != null && size.size >= dim);
+               if (size == null || size.size < dim) {
+                       Report.error (null, "internal error: invalid array_length for given dimension");
+                       return new CCodeInvalidExpression ();
+               }
                return size[dim - 1];
        }