]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girwriter: Add explicit writable attribute to all field elements
authorPrinceton Ferro <princetonferro@gmail.com>
Thu, 15 Jul 2021 03:52:59 +0000 (23:52 -0400)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 22 Aug 2021 08:24:58 +0000 (10:24 +0200)
This addresses issues with bindings to Vala structs.

codegen/valagirwriter.vala
tests/girwriter/GirTest-1.0.gir-expected

index b96c280ae4fdd204fe242b1de5d8003bd46c30d8..a7acf680d4db6222a96ac2d7982c786ad162d69c 100644 (file)
@@ -1011,7 +1011,7 @@ public class Vala.GIRWriter : CodeVisitor {
                }
 
                write_indent ();
-               buffer.append_printf ("<field name=\"%s\"", get_ccode_name (f));
+               buffer.append_printf ("<field name=\"%s\" writable=\"1\"", get_ccode_name (f));
                if (f.variable_type.nullable) {
                        buffer.append_printf (" allow-none=\"1\"");
                }
index 3cdf0adc0db14443661cf4bd9e573d1ce2f2e1d6..52f97ab53839be028cce1d0f90a2aac5aebafd80 100644 (file)
@@ -97,7 +97,7 @@
                <field name="priv" readable="0" private="1">
                        <type name="SubTypeTestPrivate" c:type="GirTestSubTypeTestPrivate*"/>
                </field>
-               <field name="array_field">
+               <field name="array_field" writable="1">
                        <array c:type="gchar**">
                                <type name="utf8" c:type="gchar*"/>
                        </array>
                <field name="array_field_length1">
                        <type name="gint" c:type="gint"/>
                </field>
-               <field name="delegate_field">
+               <field name="delegate_field" writable="1">
                        <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
                </field>
                <field name="delegate_field_target">
                <field name="priv" readable="0" private="1">
                        <type name="ObjectTestPrivate" c:type="GirTestObjectTestPrivate*"/>
                </field>
-               <field name="field">
+               <field name="field" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
-               <field name="internal_field">
+               <field name="internal_field" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
-               <field name="fixed_array_field">
+               <field name="fixed_array_field" writable="1">
                        <array fixed-size="23" c:type="gint*">
                                <type name="gint" c:type="gint"/>
                        </array>
                </field>
-               <field name="nullable_field" allow-none="1">
+               <field name="nullable_field" writable="1" allow-none="1">
                        <type name="utf8" c:type="gchar*"/>
                </field>
                <constructor name="new" c:identifier="gir_test_object_test_new">
        </record>
        <record name="ImplementionTestPrivate" c:type="GirTestImplementionTestPrivate" disguised="1"/>
        <record name="CompactClass">
-               <field name="s">
+               <field name="s" writable="1">
                        <type name="utf8" c:type="gchar*"/>
                </field>
-               <field name="i">
+               <field name="i" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
                <constructor name="new" c:identifier="gir_test_compactclass_new">
        </record>
        <record name="RenamedClassPrivate" c:type="GirTestNamedClassPrivate" disguised="1"/>
        <record name="RenamedCompactClass">
-               <field name="s">
+               <field name="s" writable="1">
                        <type name="utf8" c:type="gchar*"/>
                </field>
-               <field name="i">
+               <field name="i" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
                <constructor name="new" c:identifier="gir_test_named_compactclass_new">
                </field>
        </record>
        <record name="BoxedStruct" c:type="GirTestBoxedStruct" c:symbol-prefix="boxed_struct" glib:type-name="GirTestBoxedStruct" glib:get-type="gir_test_boxed_struct_get_type">
-               <field name="field_name">
+               <field name="field_name" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
-               <field name="internal_field_name">
+               <field name="internal_field_name" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
                <function name="init" c:identifier="gir_test_boxed_struct_init">
                </method>
        </record>
        <record name="Struct" c:type="GirTestStruct" c:symbol-prefix="struct">
-               <field name="field_name">
+               <field name="field_name" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
-               <field name="internal_field_name">
+               <field name="internal_field_name" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
                <function name="init" c:identifier="gir_test_struct_init">
                </method>
        </record>
        <record name="SkippedStruct" c:type="GirTestSkippedStruct" c:symbol-prefix="skipped_struct" glib:type-name="GirTestSkippedStruct" glib:get-type="gir_test_skipped_struct_get_type" introspectable="0">
-               <field name="field_name">
+               <field name="field_name" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
        </record>
        <record name="RenamedStruct" c:type="GirTestNamedStruct" c:symbol-prefix="named_struct" glib:type-name="GirTestNamedStruct" glib:get-type="gir_test_named_struct_get_type">
-               <field name="field_name">
+               <field name="field_name" writable="1">
                        <type name="gint" c:type="gint"/>
                </field>
        </record>