]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girwriter: Don't use instance-parameter inside callback
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 1 Apr 2021 13:33:43 +0000 (15:33 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 4 Apr 2021 13:43:21 +0000 (15:43 +0200)
Fixes https://gitlab.gnome.org/GNOME/vala/issues/1167

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

index 713e923c2b1cb48a8e41d4b11ca39297225a2649..b3f5ad18eaa535940a8c2e9da3184660be3d3fde 100644 (file)
@@ -1180,9 +1180,9 @@ public class Vala.GIRWriter : CodeVisitor {
                        }
 
                        foreach (Parameter param in params) {
-                               write_param_or_return (param.variable_type, "parameter", ref index, get_ccode_array_length (param), param.name, get_parameter_comment (param), param.direction, false, false, param.ellipsis || param.params_array);
+                               write_param_or_return (param.variable_type, "parameter", ref index, get_ccode_array_length (param), get_ccode_name (param), get_parameter_comment (param), param.direction, false, false, param.ellipsis || param.params_array);
 
-                               write_implicit_params (param.variable_type, ref index, get_ccode_array_length (param), param.name, param.direction);
+                               write_implicit_params (param.variable_type, ref index, get_ccode_array_length (param), get_ccode_name (param), param.direction);
                        }
 
                        if (ret_is_struct) {
@@ -1359,7 +1359,15 @@ public class Vala.GIRWriter : CodeVisitor {
                        write_doc (get_method_comment (m));
                }
 
-               write_params_and_return (params, m.get_type_parameters (), return_type, get_ccode_array_length (m), return_comment, false, m.this_parameter);
+               if (tag_name == "callback" && m.this_parameter != null) {
+                       m.this_parameter.set_attribute_string ("CCode", "cname", "self");
+                       var static_params = new ArrayList<Vala.Parameter> ();
+                       static_params.add (m.this_parameter);
+                       static_params.add_all (params);
+                       write_params_and_return (static_params, m.get_type_parameters (), return_type, get_ccode_array_length (m), return_comment, false);
+               } else {
+                       write_params_and_return (params, m.get_type_parameters (), return_type, get_ccode_array_length (m), return_comment, false, m.this_parameter);
+               }
 
                indent--;
                write_indent ();
index d2e83c8fda55f219f1ca193800018bae07aa30d2..0a342ea5bd4939bedcf3216f3603fa21e4022837 100644 (file)
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint8" c:type="gint8"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint8" c:type="gint8"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
+                                       </parameter>
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="i1" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
+                                       </parameter>
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param1" transfer-ownership="none">
-                                               <array length="1" c:type="gint*">
+                                               <array length="2" c:type="gint*">
                                                        <type name="gint" c:type="gint"/>
                                                </array>
                                        </parameter>
                                        <parameter name="param1_length1" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
-                                       <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <parameter name="param2" transfer-ownership="none" closure="4" scope="notified" destroy="5">
                                                <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
                                        </parameter>
                                        <parameter name="param2_target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="i1" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint8" c:type="gint8"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" direction="inout" transfer-ownership="full">
                                                <type name="gint8" c:type="gint8*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" direction="out" transfer-ownership="full">
                                                <type name="gint8" c:type="gint8*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint8" c:type="gint8"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
+                                       </parameter>
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param1" transfer-ownership="none">
-                                               <array length="1" c:type="gint*">
+                                               <array length="2" c:type="gint*">
                                                        <type name="gint" c:type="gint"/>
                                                </array>
                                        </parameter>
                                        <parameter name="param1_length1" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
-                                       <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <parameter name="param2" transfer-ownership="none" closure="4" scope="notified" destroy="5">
                                                <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
                                        </parameter>
                                        <parameter name="param2_target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint8" c:type="gint8"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
+                                       </parameter>
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
-                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
+                                       </parameter>
+                                       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
                                                <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
                                        </parameter>
                                        <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="this" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="_res_" transfer-ownership="none">
                                                <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
                                        </parameter>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="param1" transfer-ownership="none">
-                                               <array length="1" c:type="gint*">
+                                               <array length="2" c:type="gint*">
                                                        <type name="gint" c:type="gint"/>
                                                </array>
                                        </parameter>
                                        <parameter name="param1_length1" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
-                                       <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <parameter name="param2" transfer-ownership="none" closure="4" scope="notified" destroy="5">
                                                <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
                                        </parameter>
                                        <parameter name="param2_target" transfer-ownership="none" allow-none="1">
                                        <type name="gint" c:type="gint"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="value" transfer-ownership="none">
                                                <type name="gint" c:type="gint"/>
                                        </parameter>
                                        <type name="utf8" c:type="const gchar*"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                </parameters>
                        </callback>
                </field>
                                        <type name="none" c:type="void"/>
                                </return-value>
                                <parameters>
-                                       <instance-parameter name="self" transfer-ownership="none">
+                                       <parameter name="self" transfer-ownership="none">
                                                <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
-                                       </instance-parameter>
+                                       </parameter>
                                        <parameter name="value" transfer-ownership="none">
                                                <type name="utf8" c:type="const gchar*"/>
                                        </parameter>