]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: Discover our very own array length fields
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 19 Jan 2021 20:56:50 +0000 (21:56 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 19 Jan 2021 20:56:50 +0000 (21:56 +0100)
tests/girwriter/GirTest-1.0.metadata
tests/girwriter/girtest.vapigen-expected
vala/valagirparser.vala

index 37a3608d6cbecae6f1db6aa1f68d73c580e80f85..49ebef7d3b2ff167d98512ffe465d525c7741dce 100644 (file)
@@ -10,8 +10,7 @@ ObjectTest
        .fixed_array_field unowned=false
        .nullable_field unowned=false
 SubTypeTest
-       .array_field unowned=false array_length_field="array_field_length1"
-       .array_field_length1 skip
+       .array_field unowned=false
        .delegate_field unowned=false
        .delegate_field_target* skip
 nested_function name="nested" parent="GirTest.Nested"
index a0d0cebe2490112886598221d04861e9db29a35e..68bb68f90e235cf7b73beab829b301e7a270bd16 100644 (file)
@@ -127,8 +127,9 @@ namespace GirTest {
        }
        [CCode (cheader_filename = "girtest.h", type_id = "gir_test_sub_type_test_get_type ()")]
        public class SubTypeTest : GirTest.TypeTest {
-               [CCode (array_length = false, array_null_terminated = true)]
+               [CCode (array_length_cname = "array_field_length1")]
                public string[] array_field;
+               public int array_field_length1;
                public GirTest.DelegateTest delegate_field;
                [CCode (has_construct_function = false)]
                public SubTypeTest ();
index ee520350d506352772838087c544388a5c91d430..c17658981414e916acedf396d4777d1680ba4c41 100644 (file)
@@ -1163,6 +1163,9 @@ public class Vala.GirParser : CodeVisitor {
                                                                array_length = parent.lookup ("num_%s".printf (field.name));
                                                                if (array_length == null) {
                                                                        array_length = parent.lookup ("%s_length".printf (field.name));
+                                                                       if (array_length == null) {
+                                                                               array_length = parent.lookup ("%s_length1".printf (field.name));
+                                                                       }
                                                                }
                                                        }
                                                }