diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2017-10-10 14:09:10 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2017-10-10 15:38:54 +0200 |
commit | 8a010511b02e165c1c84cd62a13500eaa37e161f (patch) | |
tree | 589f5d89e85cd89bf69472bee0b468dfff49ae1d /codegen/valaccodeattribute.vala | |
parent | 4a2e3212d2fe502b44d4d299fff33c6060d840f5 (diff) | |
download | vala-8a010511b02e165c1c84cd62a13500eaa37e161f.tar.gz |
codegen: Prioritize "array_length=true" over "array_null_terminated=true"
If arrays claim to have an array-length and also are null-terminated then
use and rely on the given length.
Adapt the girparser for this and add "array_length = true" accordingly.
https://bugzilla.gnome.org/show_bug.cgi?id=788775
Diffstat (limited to 'codegen/valaccodeattribute.vala')
-rw-r--r-- | codegen/valaccodeattribute.vala | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/codegen/valaccodeattribute.vala b/codegen/valaccodeattribute.vala index 815ec1104..090c76558 100644 --- a/codegen/valaccodeattribute.vala +++ b/codegen/valaccodeattribute.vala @@ -523,7 +523,10 @@ public class Vala.CCodeAttribute : AttributeCache { public bool array_null_terminated { get { if (_array_null_terminated == null) { - if (ccode != null && ccode.has_argument ("array_null_terminated")) { + // If arrays claim to have an array-length and also are null-terminated then rely on the given length + if (ccode != null && ccode.has_argument ("array_length") && ccode.get_bool ("array_length")) { + _array_null_terminated = false; + } else if (ccode != null && ccode.has_argument ("array_null_terminated")) { _array_null_terminated = ccode.get_bool ("array_null_terminated"); } else { _array_null_terminated = get_default_array_null_terminated (); |