tests: Add a foreign struct signal test
[platform/upstream/gobject-introspection.git] / tests / scanner / Regress-1.0-expected.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.2"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GObject" version="2.0"/>
11   <include name="Gio" version="2.0"/>
12   <include name="cairo" version="1.0"/>
13   <c:include name="regress.h"/>
14   <namespace name="Regress"
15              version="1.0"
16              shared-library="libregress.so"
17              c:identifier-prefixes="Regress"
18              c:symbol-prefixes="regress">
19     <alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
20       <doc xml:whitespace="preserve">Typedef TestBoxed to test caller-allocates correctness</doc>
21       <type name="TestBoxed" c:type="RegressTestBoxed"/>
22     </alias>
23     <alias name="IntSet" c:type="RegressIntSet" introspectable="0">
24       <doc xml:whitespace="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
25       <type name="Intset" c:type="RegressIntset"/>
26     </alias>
27     <alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
28       <doc xml:whitespace="preserve">Typedef'd GPtrArray for some reason</doc>
29       <type name="GLib.PtrArray" c:type="GPtrArray"/>
30     </alias>
31     <alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
32       <doc xml:whitespace="preserve">Typedef'd va_list for additional reasons</doc>
33       <type name="va_list" c:type="va_list"/>
34     </alias>
35     <constant name="DOUBLE_CONSTANT"
36               value="44.220000"
37               c:type="REGRESS_DOUBLE_CONSTANT">
38       <type name="gdouble" c:type="gdouble"/>
39     </constant>
40     <constant name="INT_CONSTANT" value="4422" c:type="REGRESS_INT_CONSTANT">
41       <type name="gint" c:type="gint"/>
42     </constant>
43     <record name="Intset" c:type="RegressIntset" disguised="1">
44       <doc xml:whitespace="preserve">Like telepathy-glib's TpIntset.</doc>
45     </record>
46     <constant name="LONG_STRING_CONSTANT"
47               value="TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL,HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO,AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL,POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF,PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
48               c:type="REGRESS_LONG_STRING_CONSTANT">
49       <type name="utf8" c:type="gchar*"/>
50     </constant>
51     <constant name="Mixed_Case_Constant"
52               value="4423"
53               c:type="REGRESS_Mixed_Case_Constant">
54       <type name="gint" c:type="gint"/>
55     </constant>
56     <constant name="STRING_CONSTANT"
57               value="Some String"
58               c:type="REGRESS_STRING_CONSTANT">
59       <type name="utf8" c:type="gchar*"/>
60     </constant>
61     <record name="SkippedStructure"
62             c:type="RegressSkippedStructure"
63             introspectable="0">
64       <doc xml:whitespace="preserve">This should be skipped, and moreover, all function which
65 use it should be.</doc>
66       <field name="x" writable="1">
67         <type name="gint" c:type="int"/>
68       </field>
69       <field name="v" writable="1">
70         <type name="gdouble" c:type="double"/>
71       </field>
72     </record>
73     <record name="TestBoxed"
74             c:type="RegressTestBoxed"
75             glib:type-name="RegressTestBoxed"
76             glib:get-type="regress_test_boxed_get_type"
77             c:symbol-prefix="test_boxed">
78       <field name="some_int8" writable="1">
79         <type name="gint8" c:type="gint8"/>
80       </field>
81       <field name="nested_a" writable="1">
82         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
83       </field>
84       <field name="priv" writable="1">
85         <type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
86       </field>
87       <constructor name="new" c:identifier="regress_test_boxed_new">
88         <return-value transfer-ownership="full">
89           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
90         </return-value>
91       </constructor>
92       <constructor name="new_alternative_constructor1"
93                    c:identifier="regress_test_boxed_new_alternative_constructor1">
94         <return-value transfer-ownership="full">
95           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
96         </return-value>
97         <parameters>
98           <parameter name="i" transfer-ownership="none">
99             <type name="gint" c:type="int"/>
100           </parameter>
101         </parameters>
102       </constructor>
103       <constructor name="new_alternative_constructor2"
104                    c:identifier="regress_test_boxed_new_alternative_constructor2">
105         <return-value transfer-ownership="full">
106           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
107         </return-value>
108         <parameters>
109           <parameter name="i" transfer-ownership="none">
110             <type name="gint" c:type="int"/>
111           </parameter>
112           <parameter name="j" transfer-ownership="none">
113             <type name="gint" c:type="int"/>
114           </parameter>
115         </parameters>
116       </constructor>
117       <constructor name="new_alternative_constructor3"
118                    c:identifier="regress_test_boxed_new_alternative_constructor3">
119         <return-value transfer-ownership="full">
120           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
121         </return-value>
122         <parameters>
123           <parameter name="s" transfer-ownership="none">
124             <type name="utf8" c:type="char*"/>
125           </parameter>
126         </parameters>
127       </constructor>
128       <method name="copy" c:identifier="regress_test_boxed_copy">
129         <return-value transfer-ownership="full">
130           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
131         </return-value>
132       </method>
133       <method name="equals" c:identifier="regress_test_boxed_equals">
134         <return-value transfer-ownership="none">
135           <type name="gboolean" c:type="gboolean"/>
136         </return-value>
137         <parameters>
138           <parameter name="other" transfer-ownership="none">
139             <type name="TestBoxed" c:type="RegressTestBoxed*"/>
140           </parameter>
141         </parameters>
142       </method>
143     </record>
144     <record name="TestBoxedB"
145             c:type="RegressTestBoxedB"
146             glib:type-name="RegressTestBoxedB"
147             glib:get-type="regress_test_boxed_b_get_type"
148             c:symbol-prefix="test_boxed_b">
149       <field name="some_int8" writable="1">
150         <type name="gint8" c:type="gint8"/>
151       </field>
152       <field name="some_long" writable="1">
153         <type name="glong" c:type="glong"/>
154       </field>
155       <constructor name="new" c:identifier="regress_test_boxed_b_new">
156         <return-value transfer-ownership="full">
157           <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
158         </return-value>
159         <parameters>
160           <parameter name="some_int8" transfer-ownership="none">
161             <type name="gint8" c:type="gint8"/>
162           </parameter>
163           <parameter name="some_long" transfer-ownership="none">
164             <type name="glong" c:type="glong"/>
165           </parameter>
166         </parameters>
167       </constructor>
168       <method name="copy" c:identifier="regress_test_boxed_b_copy">
169         <return-value transfer-ownership="full">
170           <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
171         </return-value>
172       </method>
173     </record>
174     <record name="TestBoxedPrivate"
175             c:type="RegressTestBoxedPrivate"
176             disguised="1">
177     </record>
178     <callback name="TestCallback" c:type="RegressTestCallback">
179       <return-value transfer-ownership="none">
180         <type name="gint" c:type="int"/>
181       </return-value>
182     </callback>
183     <callback name="TestCallbackArray" c:type="RegressTestCallbackArray">
184       <return-value transfer-ownership="none">
185         <type name="gint" c:type="int"/>
186       </return-value>
187       <parameters>
188         <parameter name="one" transfer-ownership="none">
189           <array length="1" zero-terminated="0" c:type="int*">
190             <type name="gint" c:type="int"/>
191           </array>
192         </parameter>
193         <parameter name="one_length" transfer-ownership="none">
194           <type name="gsize" c:type="gsize"/>
195         </parameter>
196         <parameter name="two" transfer-ownership="none">
197           <array length="3" zero-terminated="0" c:type="char**">
198             <type name="utf8"/>
199           </array>
200         </parameter>
201         <parameter name="two_length" transfer-ownership="none">
202           <type name="gint" c:type="int"/>
203         </parameter>
204       </parameters>
205     </callback>
206     <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
207       <return-value transfer-ownership="none">
208         <type name="gint" c:type="int"/>
209       </return-value>
210       <parameters>
211         <parameter name="foo" transfer-ownership="none">
212           <doc xml:whitespace="preserve">the investment rate</doc>
213           <type name="gint" c:type="int"/>
214         </parameter>
215         <parameter name="bar" transfer-ownership="none">
216           <doc xml:whitespace="preserve">how much money</doc>
217           <type name="gdouble" c:type="double"/>
218         </parameter>
219         <parameter name="path" transfer-ownership="none">
220           <doc xml:whitespace="preserve">Path to file</doc>
221           <type name="filename" c:type="char*"/>
222         </parameter>
223       </parameters>
224     </callback>
225     <callback name="TestCallbackGError" c:type="RegressTestCallbackGError">
226       <return-value transfer-ownership="none">
227         <type name="none" c:type="void"/>
228       </return-value>
229       <parameters>
230         <parameter name="error" transfer-ownership="none">
231           <type name="GLib.Error" c:type="GError*"/>
232         </parameter>
233       </parameters>
234     </callback>
235     <callback name="TestCallbackHashtable"
236               c:type="RegressTestCallbackHashtable">
237       <return-value transfer-ownership="none">
238         <type name="none" c:type="void"/>
239       </return-value>
240       <parameters>
241         <parameter name="data" transfer-ownership="none">
242           <doc xml:whitespace="preserve">a hash table; will be modified</doc>
243           <type name="GLib.HashTable" c:type="GHashTable*">
244             <type name="utf8"/>
245             <type name="gint"/>
246           </type>
247         </parameter>
248       </parameters>
249     </callback>
250     <callback name="TestCallbackOwnedGError"
251               c:type="RegressTestCallbackOwnedGError">
252       <return-value transfer-ownership="none">
253         <type name="none" c:type="void"/>
254       </return-value>
255       <parameters>
256         <parameter name="error" transfer-ownership="full">
257           <doc xml:whitespace="preserve">GError instance; must be freed by the callback</doc>
258           <type name="GLib.Error" c:type="GError*"/>
259         </parameter>
260       </parameters>
261     </callback>
262     <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
263       <return-value transfer-ownership="none">
264         <type name="gint" c:type="int"/>
265       </return-value>
266       <parameters>
267         <parameter name="user_data" transfer-ownership="none" closure="0">
268           <type name="gpointer" c:type="gpointer"/>
269         </parameter>
270       </parameters>
271     </callback>
272     <enumeration name="TestEnum"
273                  glib:type-name="RegressTestEnum"
274                  glib:get-type="regress_test_enum_get_type"
275                  c:type="RegressTestEnum">
276       <member name="value1"
277               value="0"
278               c:identifier="REGRESS_TEST_VALUE1"
279               glib:nick="value1"/>
280       <member name="value2"
281               value="1"
282               c:identifier="REGRESS_TEST_VALUE2"
283               glib:nick="value2"/>
284       <member name="value3"
285               value="-1"
286               c:identifier="REGRESS_TEST_VALUE3"
287               glib:nick="value3"/>
288       <member name="value4"
289               value="48"
290               c:identifier="REGRESS_TEST_VALUE4"
291               glib:nick="value4"/>
292       <function name="param" c:identifier="regress_test_enum_param">
293         <return-value transfer-ownership="none">
294           <type name="utf8" c:type="gchar*"/>
295         </return-value>
296         <parameters>
297           <parameter name="e" transfer-ownership="none">
298             <type name="TestEnum" c:type="RegressTestEnum"/>
299           </parameter>
300         </parameters>
301       </function>
302     </enumeration>
303     <enumeration name="TestEnumNoGEnum" c:type="RegressTestEnumNoGEnum">
304       <member name="evalue1" value="0" c:identifier="REGRESS_TEST_EVALUE1"/>
305       <member name="evalue2" value="42" c:identifier="REGRESS_TEST_EVALUE2"/>
306       <member name="evalue3" value="48" c:identifier="REGRESS_TEST_EVALUE3"/>
307     </enumeration>
308     <enumeration name="TestEnumUnsigned"
309                  glib:type-name="RegressTestEnumUnsigned"
310                  glib:get-type="regress_test_enum_unsigned_get_type"
311                  c:type="RegressTestEnumUnsigned">
312       <member name="value1"
313               value="1"
314               c:identifier="REGRESS_TEST_UNSIGNED_VALUE1"
315               glib:nick="value1"/>
316       <member name="value2"
317               value="2147483648"
318               c:identifier="REGRESS_TEST_UNSIGNED_VALUE2"
319               glib:nick="value2"/>
320     </enumeration>
321     <bitfield name="TestFlags"
322               glib:type-name="RegressTestFlags"
323               glib:get-type="regress_test_flags_get_type"
324               c:type="RegressTestFlags">
325       <member name="flag1"
326               value="1"
327               c:identifier="TEST_FLAG1"
328               glib:nick="flag1"/>
329       <member name="flag2"
330               value="2"
331               c:identifier="TEST_FLAG2"
332               glib:nick="flag2"/>
333       <member name="flag3"
334               value="4"
335               c:identifier="TEST_FLAG3"
336               glib:nick="flag3"/>
337     </bitfield>
338     <class name="TestFloating"
339            c:symbol-prefix="test_floating"
340            c:type="RegressTestFloating"
341            parent="GObject.InitiallyUnowned"
342            glib:type-name="RegressTestFloating"
343            glib:get-type="regress_test_floating_get_type"
344            glib:type-struct="TestFloatingClass">
345       <constructor name="new" c:identifier="regress_test_floating_new">
346         <return-value transfer-ownership="none">
347           <doc xml:whitespace="preserve">A new floating #RegressTestFloating</doc>
348           <type name="TestFloating" c:type="RegressTestFloating*"/>
349         </return-value>
350       </constructor>
351       <field name="parent_instance">
352         <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
353       </field>
354     </class>
355     <record name="TestFloatingClass"
356             c:type="RegressTestFloatingClass"
357             glib:is-gtype-struct-for="TestFloating">
358       <field name="parent_class">
359         <type name="GObject.InitiallyUnownedClass"
360               c:type="GInitiallyUnownedClass"/>
361       </field>
362     </record>
363     <class name="TestFundamentalObject"
364            c:symbol-prefix="test_fundamental_object"
365            c:type="RegressTestFundamentalObject"
366            abstract="1"
367            glib:type-name="RegressTestFundamentalObject"
368            glib:get-type="regress_test_fundamental_object_get_type"
369            glib:type-struct="TestFundamentalObjectClass"
370            glib:fundamental="1"
371            glib:ref-func="regress_test_fundamental_object_ref"
372            glib:unref-func="regress_test_fundamental_object_unref"
373            glib:set-value-func="regress_test_value_set_fundamental_object"
374            glib:get-value-func="regress_test_value_get_fundamental_object">
375       <method name="ref" c:identifier="regress_test_fundamental_object_ref">
376         <return-value transfer-ownership="full">
377           <doc xml:whitespace="preserve">A new #RegressTestFundamentalObject</doc>
378           <type name="TestFundamentalObject"
379                 c:type="RegressTestFundamentalObject*"/>
380         </return-value>
381       </method>
382       <method name="unref"
383               c:identifier="regress_test_fundamental_object_unref">
384         <return-value transfer-ownership="none">
385           <type name="none" c:type="void"/>
386         </return-value>
387       </method>
388       <field name="instance">
389         <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
390       </field>
391       <field name="refcount">
392         <type name="gint" c:type="gint"/>
393       </field>
394       <field name="flags">
395         <type name="guint" c:type="guint"/>
396       </field>
397     </class>
398     <record name="TestFundamentalObjectClass"
399             c:type="RegressTestFundamentalObjectClass"
400             glib:is-gtype-struct-for="TestFundamentalObject">
401       <field name="type_class">
402         <type name="GObject.TypeClass" c:type="GTypeClass"/>
403       </field>
404       <field name="copy">
405         <type name="TestFundamentalObjectCopyFunction"
406               c:type="RegressTestFundamentalObjectCopyFunction"/>
407       </field>
408       <field name="finalize">
409         <type name="TestFundamentalObjectFinalizeFunction"
410               c:type="RegressTestFundamentalObjectFinalizeFunction"/>
411       </field>
412     </record>
413     <callback name="TestFundamentalObjectCopyFunction"
414               c:type="RegressTestFundamentalObjectCopyFunction">
415       <return-value transfer-ownership="full">
416         <type name="TestFundamentalObject"
417               c:type="RegressTestFundamentalObject*"/>
418       </return-value>
419       <parameters>
420         <parameter name="obj" transfer-ownership="none">
421           <type name="TestFundamentalObject"
422                 c:type="RegressTestFundamentalObject*"/>
423         </parameter>
424       </parameters>
425     </callback>
426     <callback name="TestFundamentalObjectFinalizeFunction"
427               c:type="RegressTestFundamentalObjectFinalizeFunction">
428       <return-value transfer-ownership="none">
429         <type name="none" c:type="void"/>
430       </return-value>
431       <parameters>
432         <parameter name="obj" transfer-ownership="none">
433           <type name="TestFundamentalObject"
434                 c:type="RegressTestFundamentalObject*"/>
435         </parameter>
436       </parameters>
437     </callback>
438     <class name="TestFundamentalSubObject"
439            c:symbol-prefix="test_fundamental_sub_object"
440            c:type="RegressTestFundamentalSubObject"
441            parent="TestFundamentalObject"
442            glib:type-name="RegressTestFundamentalSubObject"
443            glib:get-type="regress_test_fundamental_sub_object_get_type"
444            glib:type-struct="TestFundamentalSubObjectClass"
445            glib:fundamental="1">
446       <constructor name="new"
447                    c:identifier="regress_test_fundamental_sub_object_new">
448         <return-value transfer-ownership="full">
449           <type name="TestFundamentalSubObject"
450                 c:type="RegressTestFundamentalSubObject*"/>
451         </return-value>
452         <parameters>
453           <parameter name="data" transfer-ownership="none">
454             <type name="utf8" c:type="char*"/>
455           </parameter>
456         </parameters>
457       </constructor>
458       <field name="fundamental_object">
459         <type name="TestFundamentalObject"
460               c:type="RegressTestFundamentalObject"/>
461       </field>
462       <field name="data">
463         <type name="utf8" c:type="char*"/>
464       </field>
465     </class>
466     <record name="TestFundamentalSubObjectClass"
467             c:type="RegressTestFundamentalSubObjectClass"
468             glib:is-gtype-struct-for="TestFundamentalSubObject">
469       <field name="fundamental_object_class">
470         <type name="TestFundamentalObjectClass"
471               c:type="RegressTestFundamentalObjectClass"/>
472       </field>
473     </record>
474     <interface name="TestInterface"
475                c:symbol-prefix="test_interface"
476                c:type="RegressTestInterface"
477                glib:type-name="RegressTestInterface"
478                glib:get-type="regress_test_interface_get_type"
479                glib:type-struct="TestInterfaceIface">
480     </interface>
481     <record name="TestInterfaceIface"
482             c:type="RegressTestInterfaceIface"
483             glib:is-gtype-struct-for="TestInterface">
484       <field name="base_iface">
485         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
486       </field>
487     </record>
488     <class name="TestObj"
489            c:symbol-prefix="test_obj"
490            c:type="RegressTestObj"
491            parent="GObject.Object"
492            glib:type-name="RegressTestObj"
493            glib:get-type="regress_test_obj_get_type"
494            glib:type-struct="TestObjClass">
495       <constructor name="constructor" c:identifier="regress_constructor">
496         <return-value transfer-ownership="full">
497           <type name="TestObj" c:type="RegressTestObj*"/>
498         </return-value>
499       </constructor>
500       <constructor name="new" c:identifier="regress_test_obj_new">
501         <return-value transfer-ownership="full">
502           <type name="TestObj" c:type="RegressTestObj*"/>
503         </return-value>
504         <parameters>
505           <parameter name="obj" transfer-ownership="none">
506             <doc xml:whitespace="preserve">A #RegressTestObj</doc>
507             <type name="TestObj" c:type="RegressTestObj*"/>
508           </parameter>
509         </parameters>
510       </constructor>
511       <constructor name="new_callback"
512                    c:identifier="regress_test_obj_new_callback">
513         <return-value transfer-ownership="full">
514           <type name="TestObj" c:type="RegressTestObj*"/>
515         </return-value>
516         <parameters>
517           <parameter name="callback"
518                      transfer-ownership="none"
519                      scope="notified"
520                      closure="1"
521                      destroy="2">
522             <type name="TestCallbackUserData"
523                   c:type="RegressTestCallbackUserData"/>
524           </parameter>
525           <parameter name="user_data" transfer-ownership="none">
526             <type name="gpointer" c:type="gpointer"/>
527           </parameter>
528           <parameter name="notify" transfer-ownership="none" scope="async">
529             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
530           </parameter>
531         </parameters>
532       </constructor>
533       <constructor name="new_from_file"
534                    c:identifier="regress_test_obj_new_from_file"
535                    throws="1">
536         <return-value transfer-ownership="full">
537           <type name="TestObj" c:type="RegressTestObj*"/>
538         </return-value>
539         <parameters>
540           <parameter name="x" transfer-ownership="none">
541             <type name="utf8" c:type="char*"/>
542           </parameter>
543         </parameters>
544       </constructor>
545       <function name="null_out" c:identifier="regress_test_obj_null_out">
546         <return-value transfer-ownership="none">
547           <type name="none" c:type="void"/>
548         </return-value>
549         <parameters>
550           <parameter name="obj"
551                      direction="out"
552                      caller-allocates="0"
553                      transfer-ownership="full"
554                      allow-none="1">
555             <doc xml:whitespace="preserve">A #RegressTestObj</doc>
556             <type name="TestObj" c:type="RegressTestObj**"/>
557           </parameter>
558         </parameters>
559       </function>
560       <function name="static_method"
561                 c:identifier="regress_test_obj_static_method">
562         <return-value transfer-ownership="none">
563           <type name="gdouble" c:type="double"/>
564         </return-value>
565         <parameters>
566           <parameter name="x" transfer-ownership="none">
567             <type name="gint" c:type="int"/>
568           </parameter>
569         </parameters>
570       </function>
571       <function name="static_method_callback"
572                 c:identifier="regress_test_obj_static_method_callback">
573         <return-value transfer-ownership="none">
574           <type name="none" c:type="void"/>
575         </return-value>
576         <parameters>
577           <parameter name="callback"
578                      transfer-ownership="none"
579                      allow-none="1"
580                      scope="call">
581             <type name="TestCallback" c:type="RegressTestCallback"/>
582           </parameter>
583         </parameters>
584       </function>
585       <virtual-method name="allow_none_vfunc">
586         <return-value transfer-ownership="none">
587           <type name="none" c:type="void"/>
588         </return-value>
589         <parameters>
590           <parameter name="two" transfer-ownership="none" allow-none="1">
591             <doc xml:whitespace="preserve">Another object</doc>
592             <type name="TestObj" c:type="RegressTestObj*"/>
593           </parameter>
594         </parameters>
595       </virtual-method>
596       <virtual-method name="matrix" invoker="do_matrix">
597         <doc xml:whitespace="preserve">This method is virtual.  Notably its name differs from the virtual
598 slot name, which makes it useful for testing bindings handle this
599 case.</doc>
600         <return-value transfer-ownership="none">
601           <type name="gint" c:type="int"/>
602         </return-value>
603         <parameters>
604           <parameter name="somestr" transfer-ownership="none">
605             <doc xml:whitespace="preserve">Meaningless string</doc>
606             <type name="utf8" c:type="char*"/>
607           </parameter>
608         </parameters>
609       </virtual-method>
610       <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
611         <doc xml:whitespace="preserve">This method is virtual.  Notably its name differs from the virtual
612 slot name, which makes it useful for testing bindings handle this
613 case.</doc>
614         <return-value transfer-ownership="none">
615           <type name="gint" c:type="int"/>
616         </return-value>
617         <parameters>
618           <parameter name="somestr" transfer-ownership="none">
619             <doc xml:whitespace="preserve">Meaningless string</doc>
620             <type name="utf8" c:type="char*"/>
621           </parameter>
622         </parameters>
623       </method>
624       <method name="emit_sig_with_foreign_struct"
625               c:identifier="regress_test_obj_emit_sig_with_foreign_struct">
626         <return-value transfer-ownership="none">
627           <type name="none" c:type="void"/>
628         </return-value>
629       </method>
630       <method name="emit_sig_with_obj"
631               c:identifier="regress_test_obj_emit_sig_with_obj">
632         <return-value transfer-ownership="none">
633           <type name="none" c:type="void"/>
634         </return-value>
635       </method>
636       <method name="forced_method" c:identifier="regress_forced_method">
637         <return-value transfer-ownership="none">
638           <type name="none" c:type="void"/>
639         </return-value>
640       </method>
641       <method name="instance_method"
642               c:identifier="regress_test_obj_instance_method">
643         <return-value transfer-ownership="none">
644           <type name="gint" c:type="int"/>
645         </return-value>
646       </method>
647       <method name="instance_method_callback"
648               c:identifier="regress_test_obj_instance_method_callback">
649         <return-value transfer-ownership="none">
650           <type name="none" c:type="void"/>
651         </return-value>
652         <parameters>
653           <parameter name="callback"
654                      transfer-ownership="none"
655                      allow-none="1"
656                      scope="call">
657             <type name="TestCallback" c:type="RegressTestCallback"/>
658           </parameter>
659         </parameters>
660       </method>
661       <method name="set_bare" c:identifier="regress_test_obj_set_bare">
662         <return-value transfer-ownership="none">
663           <type name="none" c:type="void"/>
664         </return-value>
665         <parameters>
666           <parameter name="bare" transfer-ownership="none" allow-none="1">
667             <type name="GObject.Object" c:type="GObject*"/>
668           </parameter>
669         </parameters>
670       </method>
671       <method name="skip_inout_param"
672               c:identifier="regress_test_obj_skip_inout_param"
673               throws="1">
674         <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
675         <return-value transfer-ownership="none">
676           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
677           <type name="gboolean" c:type="gboolean"/>
678         </return-value>
679         <parameters>
680           <parameter name="a" transfer-ownership="none">
681             <doc xml:whitespace="preserve">Parameter.</doc>
682             <type name="gint" c:type="gint"/>
683           </parameter>
684           <parameter name="out_b"
685                      direction="out"
686                      caller-allocates="0"
687                      transfer-ownership="full">
688             <doc xml:whitespace="preserve">Return value.</doc>
689             <type name="gint" c:type="gint*"/>
690           </parameter>
691           <parameter name="c" transfer-ownership="none">
692             <doc xml:whitespace="preserve">Other parameter.</doc>
693             <type name="gdouble" c:type="gdouble"/>
694           </parameter>
695           <parameter name="inout_d"
696                      direction="inout"
697                      caller-allocates="0"
698                      transfer-ownership="full"
699                      skip="1">
700             <doc xml:whitespace="preserve">Will be incremented.</doc>
701             <type name="gint" c:type="gint*"/>
702           </parameter>
703           <parameter name="out_sum"
704                      direction="out"
705                      caller-allocates="0"
706                      transfer-ownership="full">
707             <doc xml:whitespace="preserve">Return value.</doc>
708             <type name="gint" c:type="gint*"/>
709           </parameter>
710           <parameter name="num1" transfer-ownership="none">
711             <doc xml:whitespace="preserve">Number.</doc>
712             <type name="gint" c:type="gint"/>
713           </parameter>
714           <parameter name="num2" transfer-ownership="none">
715             <doc xml:whitespace="preserve">Number.</doc>
716             <type name="gint" c:type="gint"/>
717           </parameter>
718         </parameters>
719       </method>
720       <method name="skip_out_param"
721               c:identifier="regress_test_obj_skip_out_param"
722               throws="1">
723         <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
724         <return-value transfer-ownership="none">
725           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
726           <type name="gboolean" c:type="gboolean"/>
727         </return-value>
728         <parameters>
729           <parameter name="a" transfer-ownership="none">
730             <doc xml:whitespace="preserve">Parameter.</doc>
731             <type name="gint" c:type="gint"/>
732           </parameter>
733           <parameter name="out_b"
734                      direction="out"
735                      caller-allocates="0"
736                      transfer-ownership="full"
737                      skip="1">
738             <doc xml:whitespace="preserve">Return value.</doc>
739             <type name="gint" c:type="gint*"/>
740           </parameter>
741           <parameter name="c" transfer-ownership="none">
742             <doc xml:whitespace="preserve">Other parameter.</doc>
743             <type name="gdouble" c:type="gdouble"/>
744           </parameter>
745           <parameter name="inout_d"
746                      direction="inout"
747                      caller-allocates="0"
748                      transfer-ownership="full">
749             <doc xml:whitespace="preserve">Will be incremented.</doc>
750             <type name="gint" c:type="gint*"/>
751           </parameter>
752           <parameter name="out_sum"
753                      direction="out"
754                      caller-allocates="0"
755                      transfer-ownership="full">
756             <doc xml:whitespace="preserve">Return value.</doc>
757             <type name="gint" c:type="gint*"/>
758           </parameter>
759           <parameter name="num1" transfer-ownership="none">
760             <doc xml:whitespace="preserve">Number.</doc>
761             <type name="gint" c:type="gint"/>
762           </parameter>
763           <parameter name="num2" transfer-ownership="none">
764             <doc xml:whitespace="preserve">Number.</doc>
765             <type name="gint" c:type="gint"/>
766           </parameter>
767         </parameters>
768       </method>
769       <method name="skip_param"
770               c:identifier="regress_test_obj_skip_param"
771               throws="1">
772         <doc xml:whitespace="preserve">Check that a parameter is skipped</doc>
773         <return-value transfer-ownership="none">
774           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
775           <type name="gboolean" c:type="gboolean"/>
776         </return-value>
777         <parameters>
778           <parameter name="a" transfer-ownership="none">
779             <doc xml:whitespace="preserve">Parameter.</doc>
780             <type name="gint" c:type="gint"/>
781           </parameter>
782           <parameter name="out_b"
783                      direction="out"
784                      caller-allocates="0"
785                      transfer-ownership="full">
786             <doc xml:whitespace="preserve">Return value.</doc>
787             <type name="gint" c:type="gint*"/>
788           </parameter>
789           <parameter name="c" transfer-ownership="none" skip="1">
790             <doc xml:whitespace="preserve">Other parameter.</doc>
791             <type name="gdouble" c:type="gdouble"/>
792           </parameter>
793           <parameter name="inout_d"
794                      direction="inout"
795                      caller-allocates="0"
796                      transfer-ownership="full">
797             <doc xml:whitespace="preserve">Will be incremented.</doc>
798             <type name="gint" c:type="gint*"/>
799           </parameter>
800           <parameter name="out_sum"
801                      direction="out"
802                      caller-allocates="0"
803                      transfer-ownership="full">
804             <doc xml:whitespace="preserve">Return value.</doc>
805             <type name="gint" c:type="gint*"/>
806           </parameter>
807           <parameter name="num1" transfer-ownership="none">
808             <doc xml:whitespace="preserve">Number.</doc>
809             <type name="gint" c:type="gint"/>
810           </parameter>
811           <parameter name="num2" transfer-ownership="none">
812             <doc xml:whitespace="preserve">Number.</doc>
813             <type name="gint" c:type="gint"/>
814           </parameter>
815         </parameters>
816       </method>
817       <method name="skip_return_val"
818               c:identifier="regress_test_obj_skip_return_val"
819               throws="1">
820         <doc xml:whitespace="preserve">Check that the return value is skipped</doc>
821         <return-value transfer-ownership="none" skip="1">
822           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
823           <type name="gboolean" c:type="gboolean"/>
824         </return-value>
825         <parameters>
826           <parameter name="a" transfer-ownership="none">
827             <doc xml:whitespace="preserve">Parameter.</doc>
828             <type name="gint" c:type="gint"/>
829           </parameter>
830           <parameter name="out_b"
831                      direction="out"
832                      caller-allocates="0"
833                      transfer-ownership="full">
834             <doc xml:whitespace="preserve">A return value.</doc>
835             <type name="gint" c:type="gint*"/>
836           </parameter>
837           <parameter name="c" transfer-ownership="none">
838             <doc xml:whitespace="preserve">Other parameter.</doc>
839             <type name="gdouble" c:type="gdouble"/>
840           </parameter>
841           <parameter name="inout_d"
842                      direction="inout"
843                      caller-allocates="0"
844                      transfer-ownership="full">
845             <doc xml:whitespace="preserve">Will be incremented.</doc>
846             <type name="gint" c:type="gint*"/>
847           </parameter>
848           <parameter name="out_sum"
849                      direction="out"
850                      caller-allocates="0"
851                      transfer-ownership="full">
852             <doc xml:whitespace="preserve">Return value.</doc>
853             <type name="gint" c:type="gint*"/>
854           </parameter>
855           <parameter name="num1" transfer-ownership="none">
856             <doc xml:whitespace="preserve">Number.</doc>
857             <type name="gint" c:type="gint"/>
858           </parameter>
859           <parameter name="num2" transfer-ownership="none">
860             <doc xml:whitespace="preserve">Number.</doc>
861             <type name="gint" c:type="gint"/>
862           </parameter>
863         </parameters>
864       </method>
865       <method name="skip_return_val_no_out"
866               c:identifier="regress_test_obj_skip_return_val_no_out"
867               throws="1">
868         <doc xml:whitespace="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
869 raise an error.</doc>
870         <return-value transfer-ownership="none" skip="1">
871           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
872           <type name="gboolean" c:type="gboolean"/>
873         </return-value>
874         <parameters>
875           <parameter name="a" transfer-ownership="none">
876             <doc xml:whitespace="preserve">Parameter.</doc>
877             <type name="gint" c:type="gint"/>
878           </parameter>
879         </parameters>
880       </method>
881       <method name="torture_signature_0"
882               c:identifier="regress_test_obj_torture_signature_0">
883         <return-value transfer-ownership="none">
884           <type name="none" c:type="void"/>
885         </return-value>
886         <parameters>
887           <parameter name="x" transfer-ownership="none">
888             <type name="gint" c:type="int"/>
889           </parameter>
890           <parameter name="y"
891                      direction="out"
892                      caller-allocates="0"
893                      transfer-ownership="full">
894             <type name="gdouble" c:type="double*"/>
895           </parameter>
896           <parameter name="z"
897                      direction="out"
898                      caller-allocates="0"
899                      transfer-ownership="full">
900             <type name="gint" c:type="int*"/>
901           </parameter>
902           <parameter name="foo" transfer-ownership="none">
903             <type name="utf8" c:type="char*"/>
904           </parameter>
905           <parameter name="q"
906                      direction="out"
907                      caller-allocates="0"
908                      transfer-ownership="full">
909             <type name="gint" c:type="int*"/>
910           </parameter>
911           <parameter name="m" transfer-ownership="none">
912             <type name="guint" c:type="guint"/>
913           </parameter>
914         </parameters>
915       </method>
916       <method name="torture_signature_1"
917               c:identifier="regress_test_obj_torture_signature_1"
918               throws="1">
919         <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
920         <return-value transfer-ownership="none">
921           <type name="gboolean" c:type="gboolean"/>
922         </return-value>
923         <parameters>
924           <parameter name="x" transfer-ownership="none">
925             <type name="gint" c:type="int"/>
926           </parameter>
927           <parameter name="y"
928                      direction="out"
929                      caller-allocates="0"
930                      transfer-ownership="full">
931             <type name="gdouble" c:type="double*"/>
932           </parameter>
933           <parameter name="z"
934                      direction="out"
935                      caller-allocates="0"
936                      transfer-ownership="full">
937             <type name="gint" c:type="int*"/>
938           </parameter>
939           <parameter name="foo" transfer-ownership="none">
940             <type name="utf8" c:type="char*"/>
941           </parameter>
942           <parameter name="q"
943                      direction="out"
944                      caller-allocates="0"
945                      transfer-ownership="full">
946             <type name="gint" c:type="int*"/>
947           </parameter>
948           <parameter name="m" transfer-ownership="none">
949             <type name="guint" c:type="guint"/>
950           </parameter>
951         </parameters>
952       </method>
953       <property name="bare" writable="1" transfer-ownership="none">
954         <type name="GObject.Object"/>
955       </property>
956       <property name="boxed" writable="1" transfer-ownership="none">
957         <type name="TestBoxed"/>
958       </property>
959       <property name="double" writable="1" transfer-ownership="none">
960         <type name="gdouble"/>
961       </property>
962       <property name="float" writable="1" transfer-ownership="none">
963         <type name="gfloat"/>
964       </property>
965       <property name="gtype" writable="1" transfer-ownership="none">
966         <type name="GType"/>
967       </property>
968       <property name="hash-table" writable="1" transfer-ownership="container">
969         <type name="GLib.HashTable">
970           <type name="utf8"/>
971           <type name="gint8"/>
972         </type>
973       </property>
974       <property name="hash-table-old"
975                 writable="1"
976                 transfer-ownership="container">
977         <type name="GLib.HashTable">
978           <type name="utf8"/>
979           <type name="gint8"/>
980         </type>
981       </property>
982       <property name="int" writable="1" transfer-ownership="none">
983         <type name="gint"/>
984       </property>
985       <property name="list" writable="1" transfer-ownership="none">
986         <type name="GLib.List">
987           <type name="utf8"/>
988         </type>
989       </property>
990       <property name="list-old" writable="1" transfer-ownership="none">
991         <type name="GLib.List">
992           <type name="utf8"/>
993         </type>
994       </property>
995       <property name="string" writable="1" transfer-ownership="none">
996         <type name="utf8"/>
997       </property>
998       <field name="parent_instance">
999         <type name="GObject.Object" c:type="GObject"/>
1000       </field>
1001       <field name="bare">
1002         <type name="GObject.Object" c:type="GObject*"/>
1003       </field>
1004       <field name="boxed">
1005         <type name="TestBoxed" c:type="RegressTestBoxed*"/>
1006       </field>
1007       <field name="hash_table">
1008         <type name="GLib.HashTable" c:type="GHashTable*">
1009           <type name="gpointer" c:type="gpointer"/>
1010           <type name="gpointer" c:type="gpointer"/>
1011         </type>
1012       </field>
1013       <field name="list">
1014         <type name="GLib.List" c:type="GList*">
1015           <type name="gpointer" c:type="gpointer"/>
1016         </type>
1017       </field>
1018       <field name="some_int8">
1019         <type name="gint8" c:type="gint8"/>
1020       </field>
1021       <field name="some_float">
1022         <type name="gfloat" c:type="float"/>
1023       </field>
1024       <field name="some_double">
1025         <type name="gdouble" c:type="double"/>
1026       </field>
1027       <field name="string">
1028         <type name="utf8" c:type="char*"/>
1029       </field>
1030       <field name="gtype">
1031         <type name="GType" c:type="GType"/>
1032       </field>
1033       <glib:signal name="all"
1034                    when="first"
1035                    no-recurse="1"
1036                    detailed="1"
1037                    action="1"
1038                    no-hooks="1">
1039         <return-value transfer-ownership="none">
1040           <type name="none"/>
1041         </return-value>
1042       </glib:signal>
1043       <glib:signal name="cleanup" when="cleanup">
1044         <return-value transfer-ownership="none">
1045           <type name="none"/>
1046         </return-value>
1047       </glib:signal>
1048       <glib:signal name="first" when="first">
1049         <return-value transfer-ownership="none">
1050           <type name="none"/>
1051         </return-value>
1052       </glib:signal>
1053       <glib:signal name="sig-with-array-prop" when="last">
1054         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
1055  TpChannel:: group-members-changed-detailed:</doc>
1056         <return-value transfer-ownership="none">
1057           <type name="none"/>
1058         </return-value>
1059         <parameters>
1060           <parameter name="arr" transfer-ownership="none">
1061             <doc xml:whitespace="preserve">numbers</doc>
1062             <array name="GLib.Array">
1063               <type name="guint"/>
1064             </array>
1065           </parameter>
1066         </parameters>
1067       </glib:signal>
1068       <glib:signal name="sig-with-foreign-struct" when="last">
1069         <return-value transfer-ownership="none">
1070           <type name="none"/>
1071         </return-value>
1072         <parameters>
1073           <parameter name="cr" transfer-ownership="none">
1074             <doc xml:whitespace="preserve">A cairo context.</doc>
1075             <type name="cairo.Context"/>
1076           </parameter>
1077         </parameters>
1078       </glib:signal>
1079       <glib:signal name="sig-with-hash-prop" when="last">
1080         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
1081  TpAccount::status-changed</doc>
1082         <return-value transfer-ownership="none">
1083           <type name="none"/>
1084         </return-value>
1085         <parameters>
1086           <parameter name="hash" transfer-ownership="none">
1087             <type name="GLib.HashTable">
1088               <type name="utf8"/>
1089               <type name="GObject.Value"/>
1090             </type>
1091           </parameter>
1092         </parameters>
1093       </glib:signal>
1094       <glib:signal name="sig-with-obj" when="last">
1095         <doc xml:whitespace="preserve">Test transfer none GObject as a param (tests refcounting).
1096 Use with regress_test_obj_emit_sig_with_obj</doc>
1097         <return-value transfer-ownership="none">
1098           <type name="none"/>
1099         </return-value>
1100         <parameters>
1101           <parameter name="obj" transfer-ownership="none">
1102             <doc xml:whitespace="preserve">A newly created RegressTestObj</doc>
1103             <type name="GObject.Object"/>
1104           </parameter>
1105         </parameters>
1106       </glib:signal>
1107       <glib:signal name="sig-with-strv" when="last">
1108         <doc xml:whitespace="preserve">Test GStrv as a param.</doc>
1109         <return-value transfer-ownership="none">
1110           <type name="none"/>
1111         </return-value>
1112         <parameters>
1113           <parameter name="strs" transfer-ownership="none">
1114             <doc xml:whitespace="preserve">strings</doc>
1115             <array>
1116               <type name="utf8"/>
1117             </array>
1118           </parameter>
1119         </parameters>
1120       </glib:signal>
1121       <glib:signal name="test" when="last" no-recurse="1" no-hooks="1">
1122         <return-value transfer-ownership="none">
1123           <type name="none"/>
1124         </return-value>
1125       </glib:signal>
1126       <glib:signal name="test-with-static-scope-arg"
1127                    when="last"
1128                    no-recurse="1"
1129                    no-hooks="1">
1130         <return-value transfer-ownership="none">
1131           <type name="none"/>
1132         </return-value>
1133         <parameters>
1134           <parameter name="object" transfer-ownership="none">
1135             <type name="TestSimpleBoxedA"/>
1136           </parameter>
1137         </parameters>
1138       </glib:signal>
1139     </class>
1140     <record name="TestObjClass"
1141             c:type="RegressTestObjClass"
1142             glib:is-gtype-struct-for="TestObj">
1143       <field name="parent_class">
1144         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1145       </field>
1146       <field name="matrix">
1147         <callback name="matrix">
1148           <return-value transfer-ownership="none">
1149             <type name="gint" c:type="int"/>
1150           </return-value>
1151           <parameters>
1152             <parameter name="obj" transfer-ownership="none">
1153               <type name="TestObj" c:type="RegressTestObj*"/>
1154             </parameter>
1155             <parameter name="somestr" transfer-ownership="none">
1156               <doc xml:whitespace="preserve">Meaningless string</doc>
1157               <type name="utf8" c:type="char*"/>
1158             </parameter>
1159           </parameters>
1160         </callback>
1161       </field>
1162       <field name="allow_none_vfunc">
1163         <callback name="allow_none_vfunc">
1164           <return-value transfer-ownership="none">
1165             <type name="none" c:type="void"/>
1166           </return-value>
1167           <parameters>
1168             <parameter name="obj" transfer-ownership="none">
1169               <type name="TestObj" c:type="RegressTestObj*"/>
1170             </parameter>
1171             <parameter name="two" transfer-ownership="none" allow-none="1">
1172               <doc xml:whitespace="preserve">Another object</doc>
1173               <type name="TestObj" c:type="RegressTestObj*"/>
1174             </parameter>
1175           </parameters>
1176         </callback>
1177       </field>
1178       <field name="test_signal">
1179         <type name="guint" c:type="guint"/>
1180       </field>
1181       <field name="test_signal_with_static_scope_arg">
1182         <type name="guint" c:type="guint"/>
1183       </field>
1184       <field name="_regress_reserved1" introspectable="0">
1185         <callback name="_regress_reserved1">
1186           <return-value transfer-ownership="none">
1187             <type name="none" c:type="void"/>
1188           </return-value>
1189         </callback>
1190       </field>
1191       <field name="_regress_reserved2" introspectable="0">
1192         <callback name="_regress_reserved2">
1193           <return-value transfer-ownership="none">
1194             <type name="none" c:type="void"/>
1195           </return-value>
1196         </callback>
1197       </field>
1198     </record>
1199     <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
1200       <member name="public_enum_before"
1201               value="1"
1202               c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE"/>
1203       <member name="public_enum_after"
1204               value="4"
1205               c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER"/>
1206     </bitfield>
1207     <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
1208       <field name="this_is_public_before" writable="1">
1209         <type name="gint" c:type="gint"/>
1210       </field>
1211       <field name="this_is_private" readable="0" private="1">
1212         <type name="gint" c:type="gint"/>
1213       </field>
1214       <field name="this_is_public_after" writable="1">
1215         <type name="gint" c:type="gint"/>
1216       </field>
1217     </record>
1218     <record name="TestSimpleBoxedA"
1219             c:type="RegressTestSimpleBoxedA"
1220             glib:type-name="RegressTestSimpleBoxedA"
1221             glib:get-type="regress_test_simple_boxed_a_get_gtype"
1222             c:symbol-prefix="test_simple_boxed_a">
1223       <field name="some_int" writable="1">
1224         <type name="gint" c:type="gint"/>
1225       </field>
1226       <field name="some_int8" writable="1">
1227         <type name="gint8" c:type="gint8"/>
1228       </field>
1229       <field name="some_double" writable="1">
1230         <type name="gdouble" c:type="gdouble"/>
1231       </field>
1232       <field name="some_enum" writable="1">
1233         <type name="TestEnum" c:type="RegressTestEnum"/>
1234       </field>
1235       <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
1236         <return-value transfer-ownership="full">
1237           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1238         </return-value>
1239       </method>
1240       <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
1241         <return-value transfer-ownership="none">
1242           <type name="gboolean" c:type="gboolean"/>
1243         </return-value>
1244         <parameters>
1245           <parameter name="other_a" transfer-ownership="none">
1246             <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1247           </parameter>
1248         </parameters>
1249       </method>
1250       <function name="const_return"
1251                 c:identifier="regress_test_simple_boxed_a_const_return">
1252         <return-value transfer-ownership="none">
1253           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1254         </return-value>
1255       </function>
1256     </record>
1257     <record name="TestSimpleBoxedB"
1258             c:type="RegressTestSimpleBoxedB"
1259             glib:type-name="RegressTestSimpleBoxedB"
1260             glib:get-type="regress_test_simple_boxed_b_get_type"
1261             c:symbol-prefix="test_simple_boxed_b">
1262       <field name="some_int8" writable="1">
1263         <type name="gint8" c:type="gint8"/>
1264       </field>
1265       <field name="nested_a" writable="1">
1266         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
1267       </field>
1268       <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
1269         <return-value transfer-ownership="full">
1270           <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
1271         </return-value>
1272       </method>
1273     </record>
1274     <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
1275       <return-value transfer-ownership="none">
1276         <type name="none" c:type="void"/>
1277       </return-value>
1278     </callback>
1279     <record name="TestStructA" c:type="RegressTestStructA">
1280       <field name="some_int" writable="1">
1281         <type name="gint" c:type="gint"/>
1282       </field>
1283       <field name="some_int8" writable="1">
1284         <type name="gint8" c:type="gint8"/>
1285       </field>
1286       <field name="some_double" writable="1">
1287         <type name="gdouble" c:type="gdouble"/>
1288       </field>
1289       <field name="some_enum" writable="1">
1290         <type name="TestEnum" c:type="RegressTestEnum"/>
1291       </field>
1292       <method name="clone" c:identifier="regress_test_struct_a_clone">
1293         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructA</doc>
1294         <return-value transfer-ownership="none">
1295           <type name="none" c:type="void"/>
1296         </return-value>
1297         <parameters>
1298           <parameter name="a_out"
1299                      direction="out"
1300                      caller-allocates="1"
1301                      transfer-ownership="none">
1302             <doc xml:whitespace="preserve">the cloned structure</doc>
1303             <type name="TestStructA" c:type="RegressTestStructA*"/>
1304           </parameter>
1305         </parameters>
1306       </method>
1307     </record>
1308     <record name="TestStructB" c:type="RegressTestStructB">
1309       <field name="some_int8" writable="1">
1310         <type name="gint8" c:type="gint8"/>
1311       </field>
1312       <field name="nested_a" writable="1">
1313         <type name="TestStructA" c:type="RegressTestStructA"/>
1314       </field>
1315       <method name="clone" c:identifier="regress_test_struct_b_clone">
1316         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructB</doc>
1317         <return-value transfer-ownership="none">
1318           <type name="none" c:type="void"/>
1319         </return-value>
1320         <parameters>
1321           <parameter name="b_out"
1322                      direction="out"
1323                      caller-allocates="1"
1324                      transfer-ownership="none">
1325             <doc xml:whitespace="preserve">the cloned structure</doc>
1326             <type name="TestStructB" c:type="RegressTestStructB*"/>
1327           </parameter>
1328         </parameters>
1329       </method>
1330     </record>
1331     <record name="TestStructC" c:type="RegressTestStructC">
1332       <field name="another_int" writable="1">
1333         <type name="gint" c:type="gint"/>
1334       </field>
1335       <field name="obj" writable="1">
1336         <type name="GObject.Object" c:type="GObject*"/>
1337       </field>
1338     </record>
1339     <record name="TestStructD" c:type="RegressTestStructD">
1340       <field name="array1" writable="1">
1341         <array c:type="RegressTestStructA**">
1342           <type name="TestStructA" c:type="RegressTestStructA*"/>
1343         </array>
1344       </field>
1345       <field name="array2" writable="1">
1346         <array c:type="gpointer*">
1347           <type name="TestObj"/>
1348         </array>
1349       </field>
1350       <field name="field" writable="1">
1351         <type name="TestObj"/>
1352       </field>
1353       <field name="list" writable="1">
1354         <type name="GLib.List" c:type="GList*">
1355           <type name="TestObj"/>
1356         </type>
1357       </field>
1358       <field name="garray" writable="1">
1359         <array name="GLib.PtrArray" c:type="GPtrArray*">
1360           <type name="TestObj"/>
1361         </array>
1362       </field>
1363     </record>
1364     <record name="TestStructE" c:type="RegressTestStructE">
1365       <field name="some_type" writable="1">
1366         <type name="GType" c:type="GType"/>
1367       </field>
1368       <field name="some_union" writable="1">
1369         <array zero-terminated="0" fixed-size="2">
1370           <type name="TestStructE__some_union__union"/>
1371         </array>
1372       </field>
1373     </record>
1374     <union name="TestStructE__some_union__union">
1375       <field name="v_int" writable="1">
1376         <type name="gint" c:type="gint"/>
1377       </field>
1378       <field name="v_uint" writable="1">
1379         <type name="guint" c:type="guint"/>
1380       </field>
1381       <field name="v_long" writable="1">
1382         <type name="glong" c:type="glong"/>
1383       </field>
1384       <field name="v_ulong" writable="1">
1385         <type name="gulong" c:type="gulong"/>
1386       </field>
1387       <field name="v_int64" writable="1">
1388         <type name="gint64" c:type="gint64"/>
1389       </field>
1390       <field name="v_uint64" writable="1">
1391         <type name="guint64" c:type="guint64"/>
1392       </field>
1393       <field name="v_float" writable="1">
1394         <type name="gfloat" c:type="gfloat"/>
1395       </field>
1396       <field name="v_double" writable="1">
1397         <type name="gdouble" c:type="gdouble"/>
1398       </field>
1399       <field name="v_pointer" writable="1">
1400         <type name="gpointer" c:type="gpointer"/>
1401       </field>
1402     </union>
1403     <record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
1404       <field name="just_int" writable="1">
1405         <type name="gint" c:type="gint"/>
1406       </field>
1407       <field name="array" writable="1">
1408         <array zero-terminated="0" c:type="gint" fixed-size="10">
1409           <type name="gint" c:type="gint"/>
1410         </array>
1411       </field>
1412       <method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
1413         <return-value transfer-ownership="none">
1414           <type name="none" c:type="void"/>
1415         </return-value>
1416       </method>
1417     </record>
1418     <class name="TestSubObj"
1419            c:symbol-prefix="test_sub_obj"
1420            c:type="RegressTestSubObj"
1421            parent="TestObj"
1422            glib:type-name="RegressTestSubObj"
1423            glib:get-type="regress_test_sub_obj_get_type"
1424            glib:type-struct="TestSubObjClass">
1425       <constructor name="new" c:identifier="regress_test_sub_obj_new">
1426         <return-value transfer-ownership="full">
1427           <type name="TestObj" c:type="RegressTestObj*"/>
1428         </return-value>
1429       </constructor>
1430       <method name="instance_method"
1431               c:identifier="regress_test_sub_obj_instance_method">
1432         <return-value transfer-ownership="none">
1433           <type name="gint" c:type="int"/>
1434         </return-value>
1435       </method>
1436       <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
1437         <return-value transfer-ownership="none">
1438           <type name="none" c:type="void"/>
1439         </return-value>
1440       </method>
1441       <field name="parent_instance">
1442         <type name="TestObj" c:type="RegressTestObj"/>
1443       </field>
1444     </class>
1445     <record name="TestSubObjClass"
1446             c:type="RegressTestSubObjClass"
1447             glib:is-gtype-struct-for="TestSubObj">
1448       <field name="parent_class">
1449         <type name="TestObjClass" c:type="RegressTestObjClass"/>
1450       </field>
1451     </record>
1452     <class name="TestWi8021x"
1453            c:symbol-prefix="test_wi_802_1x"
1454            c:type="RegressTestWi8021x"
1455            parent="GObject.Object"
1456            glib:type-name="RegressTestWi8021x"
1457            glib:get-type="regress_test_wi_802_1x_get_type"
1458            glib:type-struct="TestWi8021xClass">
1459       <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
1460         <return-value transfer-ownership="full">
1461           <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
1462         </return-value>
1463       </constructor>
1464       <function name="static_method"
1465                 c:identifier="regress_test_wi_802_1x_static_method">
1466         <return-value transfer-ownership="none">
1467           <type name="gint" c:type="int"/>
1468         </return-value>
1469         <parameters>
1470           <parameter name="x" transfer-ownership="none">
1471             <type name="gint" c:type="int"/>
1472           </parameter>
1473         </parameters>
1474       </function>
1475       <method name="get_testbool"
1476               c:identifier="regress_test_wi_802_1x_get_testbool">
1477         <return-value transfer-ownership="none">
1478           <type name="gboolean" c:type="gboolean"/>
1479         </return-value>
1480       </method>
1481       <method name="set_testbool"
1482               c:identifier="regress_test_wi_802_1x_set_testbool">
1483         <return-value transfer-ownership="none">
1484           <type name="none" c:type="void"/>
1485         </return-value>
1486         <parameters>
1487           <parameter name="v" transfer-ownership="none">
1488             <type name="gboolean" c:type="gboolean"/>
1489           </parameter>
1490         </parameters>
1491       </method>
1492       <property name="testbool" writable="1" transfer-ownership="none">
1493         <type name="gboolean"/>
1494       </property>
1495       <field name="parent_instance">
1496         <type name="GObject.Object" c:type="GObject"/>
1497       </field>
1498       <field name="testbool">
1499         <type name="gboolean" c:type="gboolean"/>
1500       </field>
1501     </class>
1502     <record name="TestWi8021xClass"
1503             c:type="RegressTestWi8021xClass"
1504             glib:is-gtype-struct-for="TestWi8021x">
1505       <field name="parent_class">
1506         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1507       </field>
1508     </record>
1509     <constant name="UTF8_CONSTANT"
1510               value="const â™¥ utf8"
1511               c:type="REGRESS_UTF8_CONSTANT">
1512       <type name="utf8" c:type="gchar*"/>
1513     </constant>
1514     <function name="aliased_caller_alloc"
1515               c:identifier="regress_aliased_caller_alloc">
1516       <return-value transfer-ownership="none">
1517         <type name="none" c:type="void"/>
1518       </return-value>
1519       <parameters>
1520         <parameter name="boxed"
1521                    direction="out"
1522                    caller-allocates="1"
1523                    transfer-ownership="none">
1524           <type name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed*"/>
1525         </parameter>
1526       </parameters>
1527     </function>
1528     <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
1529       <return-value transfer-ownership="none">
1530         <type name="none" c:type="void"/>
1531       </return-value>
1532       <parameters>
1533         <parameter name="obj" transfer-ownership="none" allow-none="1">
1534           <doc xml:whitespace="preserve">A #RegressTestObj</doc>
1535           <type name="TestObj" c:type="RegressTestObj*"/>
1536         </parameter>
1537       </parameters>
1538     </function>
1539     <function name="global_get_flags_out"
1540               c:identifier="regress_global_get_flags_out">
1541       <return-value transfer-ownership="none">
1542         <type name="none" c:type="void"/>
1543       </return-value>
1544       <parameters>
1545         <parameter name="v"
1546                    direction="out"
1547                    caller-allocates="0"
1548                    transfer-ownership="full">
1549           <doc xml:whitespace="preserve">A flags value</doc>
1550           <type name="TestFlags" c:type="RegressTestFlags*"/>
1551         </parameter>
1552       </parameters>
1553     </function>
1554     <function name="has_parameter_named_attrs"
1555               c:identifier="regress_has_parameter_named_attrs">
1556       <doc xml:whitespace="preserve">This test case mirrors GnomeKeyringPasswordSchema from
1557 libgnome-keyring.</doc>
1558       <return-value transfer-ownership="none">
1559         <type name="none" c:type="void"/>
1560       </return-value>
1561       <parameters>
1562         <parameter name="foo" transfer-ownership="none">
1563           <doc xml:whitespace="preserve">some int</doc>
1564           <type name="gint" c:type="int"/>
1565         </parameter>
1566         <parameter name="attributes" transfer-ownership="none">
1567           <doc xml:whitespace="preserve">list of attributes</doc>
1568           <array zero-terminated="0" c:type="gpointer" fixed-size="32">
1569             <type name="guint32" c:type="gpointer"/>
1570           </array>
1571         </parameter>
1572       </parameters>
1573     </function>
1574     <function name="introspectable_via_alias"
1575               c:identifier="regress_introspectable_via_alias">
1576       <return-value transfer-ownership="none">
1577         <type name="none" c:type="void"/>
1578       </return-value>
1579       <parameters>
1580         <parameter name="data" transfer-ownership="none">
1581           <type name="PtrArrayAlias" c:type="RegressPtrArrayAlias*"/>
1582         </parameter>
1583       </parameters>
1584     </function>
1585     <function name="not_introspectable_via_alias"
1586               c:identifier="regress_not_introspectable_via_alias"
1587               introspectable="0">
1588       <return-value transfer-ownership="none">
1589         <type name="none" c:type="void"/>
1590       </return-value>
1591       <parameters>
1592         <parameter name="ok" transfer-ownership="none">
1593           <type name="VaListAlias" c:type="RegressVaListAlias"/>
1594         </parameter>
1595       </parameters>
1596     </function>
1597     <function name="random_function_with_skipped_structure"
1598               c:identifier="regress_random_function_with_skipped_structure"
1599               introspectable="0">
1600       <return-value transfer-ownership="none">
1601         <type name="none" c:type="void"/>
1602       </return-value>
1603       <parameters>
1604         <parameter name="x" transfer-ownership="none">
1605           <type name="gint" c:type="int"/>
1606         </parameter>
1607         <parameter name="foo" transfer-ownership="none">
1608           <type name="SkippedStructure" c:type="RegressSkippedStructure*"/>
1609         </parameter>
1610         <parameter name="v" transfer-ownership="none">
1611           <type name="gdouble" c:type="double"/>
1612         </parameter>
1613       </parameters>
1614     </function>
1615     <function name="set_abort_on_error"
1616               c:identifier="regress_set_abort_on_error">
1617       <return-value transfer-ownership="none">
1618         <type name="none" c:type="void"/>
1619       </return-value>
1620       <parameters>
1621         <parameter name="abort_on_error" transfer-ownership="none">
1622           <type name="gboolean" c:type="gboolean"/>
1623         </parameter>
1624       </parameters>
1625     </function>
1626     <function name="test_array_callback"
1627               c:identifier="regress_test_array_callback">
1628       <return-value transfer-ownership="none">
1629         <type name="gint" c:type="int"/>
1630       </return-value>
1631       <parameters>
1632         <parameter name="callback" transfer-ownership="none" scope="call">
1633           <type name="TestCallbackArray" c:type="RegressTestCallbackArray"/>
1634         </parameter>
1635       </parameters>
1636     </function>
1637     <function name="test_array_fixed_out_objects"
1638               c:identifier="regress_test_array_fixed_out_objects">
1639       <return-value transfer-ownership="none">
1640         <type name="none" c:type="void"/>
1641       </return-value>
1642       <parameters>
1643         <parameter name="objs"
1644                    direction="out"
1645                    caller-allocates="0"
1646                    transfer-ownership="full">
1647           <doc xml:whitespace="preserve">An array of #RegressTestObj</doc>
1648           <array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
1649             <type name="TestObj" c:type="RegressTestObj**"/>
1650           </array>
1651         </parameter>
1652       </parameters>
1653     </function>
1654     <function name="test_array_fixed_size_int_in"
1655               c:identifier="regress_test_array_fixed_size_int_in">
1656       <return-value transfer-ownership="none">
1657         <doc xml:whitespace="preserve">the sum of the items in @ints</doc>
1658         <type name="gint" c:type="int"/>
1659       </return-value>
1660       <parameters>
1661         <parameter name="ints" transfer-ownership="none">
1662           <doc xml:whitespace="preserve">a list of 5 integers</doc>
1663           <array zero-terminated="0" c:type="int*" fixed-size="5">
1664             <type name="gint" c:type="int"/>
1665           </array>
1666         </parameter>
1667       </parameters>
1668     </function>
1669     <function name="test_array_fixed_size_int_out"
1670               c:identifier="regress_test_array_fixed_size_int_out">
1671       <return-value transfer-ownership="none">
1672         <type name="none" c:type="void"/>
1673       </return-value>
1674       <parameters>
1675         <parameter name="ints"
1676                    direction="out"
1677                    caller-allocates="0"
1678                    transfer-ownership="full">
1679           <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
1680           <array zero-terminated="0" c:type="int**" fixed-size="5">
1681             <type name="gint" c:type="int*"/>
1682           </array>
1683         </parameter>
1684       </parameters>
1685     </function>
1686     <function name="test_array_fixed_size_int_return"
1687               c:identifier="regress_test_array_fixed_size_int_return">
1688       <return-value transfer-ownership="full">
1689         <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
1690         <array zero-terminated="0" c:type="int*" fixed-size="5">
1691           <type name="gint" c:type="int"/>
1692         </array>
1693       </return-value>
1694     </function>
1695     <function name="test_array_gint16_in"
1696               c:identifier="regress_test_array_gint16_in">
1697       <return-value transfer-ownership="none">
1698         <type name="gint" c:type="int"/>
1699       </return-value>
1700       <parameters>
1701         <parameter name="n_ints" transfer-ownership="none">
1702           <type name="gint" c:type="int"/>
1703         </parameter>
1704         <parameter name="ints" transfer-ownership="none">
1705           <doc xml:whitespace="preserve">List of ints</doc>
1706           <array length="0" zero-terminated="0" c:type="gint16*">
1707             <type name="gint16" c:type="gint16"/>
1708           </array>
1709         </parameter>
1710       </parameters>
1711     </function>
1712     <function name="test_array_gint32_in"
1713               c:identifier="regress_test_array_gint32_in">
1714       <return-value transfer-ownership="none">
1715         <type name="gint32" c:type="gint32"/>
1716       </return-value>
1717       <parameters>
1718         <parameter name="n_ints" transfer-ownership="none">
1719           <type name="gint" c:type="int"/>
1720         </parameter>
1721         <parameter name="ints" transfer-ownership="none">
1722           <doc xml:whitespace="preserve">List of ints</doc>
1723           <array length="0" zero-terminated="0" c:type="gint32*">
1724             <type name="gint32" c:type="gint32"/>
1725           </array>
1726         </parameter>
1727       </parameters>
1728     </function>
1729     <function name="test_array_gint64_in"
1730               c:identifier="regress_test_array_gint64_in">
1731       <return-value transfer-ownership="none">
1732         <type name="gint64" c:type="gint64"/>
1733       </return-value>
1734       <parameters>
1735         <parameter name="n_ints" transfer-ownership="none">
1736           <type name="gint" c:type="int"/>
1737         </parameter>
1738         <parameter name="ints" transfer-ownership="none">
1739           <doc xml:whitespace="preserve">List of ints</doc>
1740           <array length="0" zero-terminated="0" c:type="gint64*">
1741             <type name="gint64" c:type="gint64"/>
1742           </array>
1743         </parameter>
1744       </parameters>
1745     </function>
1746     <function name="test_array_gint8_in"
1747               c:identifier="regress_test_array_gint8_in">
1748       <return-value transfer-ownership="none">
1749         <type name="gint" c:type="int"/>
1750       </return-value>
1751       <parameters>
1752         <parameter name="n_ints" transfer-ownership="none">
1753           <type name="gint" c:type="int"/>
1754         </parameter>
1755         <parameter name="ints" transfer-ownership="none">
1756           <doc xml:whitespace="preserve">List of ints</doc>
1757           <array length="0" zero-terminated="0" c:type="gint8*">
1758             <type name="gint8" c:type="gint8"/>
1759           </array>
1760         </parameter>
1761       </parameters>
1762     </function>
1763     <function name="test_array_gtype_in"
1764               c:identifier="regress_test_array_gtype_in">
1765       <return-value transfer-ownership="full">
1766         <doc xml:whitespace="preserve">string representation of provided types</doc>
1767         <type name="utf8" c:type="char*"/>
1768       </return-value>
1769       <parameters>
1770         <parameter name="n_types" transfer-ownership="none">
1771           <type name="gint" c:type="int"/>
1772         </parameter>
1773         <parameter name="types" transfer-ownership="none">
1774           <doc xml:whitespace="preserve">List of types</doc>
1775           <array length="0" zero-terminated="0" c:type="GType*">
1776             <type name="GType" c:type="GType"/>
1777           </array>
1778         </parameter>
1779       </parameters>
1780     </function>
1781     <function name="test_array_int_full_out"
1782               c:identifier="regress_test_array_int_full_out">
1783       <return-value transfer-ownership="full">
1784         <doc xml:whitespace="preserve">a new array of integers.</doc>
1785         <array length="0" zero-terminated="0" c:type="int*">
1786           <type name="gint" c:type="int"/>
1787         </array>
1788       </return-value>
1789       <parameters>
1790         <parameter name="len"
1791                    direction="out"
1792                    caller-allocates="0"
1793                    transfer-ownership="full">
1794           <doc xml:whitespace="preserve">length of the returned array.</doc>
1795           <type name="gint" c:type="int*"/>
1796         </parameter>
1797       </parameters>
1798     </function>
1799     <function name="test_array_int_in"
1800               c:identifier="regress_test_array_int_in">
1801       <return-value transfer-ownership="none">
1802         <type name="gint" c:type="int"/>
1803       </return-value>
1804       <parameters>
1805         <parameter name="n_ints" transfer-ownership="none">
1806           <type name="gint" c:type="int"/>
1807         </parameter>
1808         <parameter name="ints" transfer-ownership="none">
1809           <doc xml:whitespace="preserve">List of ints</doc>
1810           <array length="0" zero-terminated="0" c:type="int*">
1811             <type name="gint" c:type="int"/>
1812           </array>
1813         </parameter>
1814       </parameters>
1815     </function>
1816     <function name="test_array_int_inout"
1817               c:identifier="regress_test_array_int_inout">
1818       <return-value transfer-ownership="none">
1819         <type name="none" c:type="void"/>
1820       </return-value>
1821       <parameters>
1822         <parameter name="n_ints"
1823                    direction="inout"
1824                    caller-allocates="0"
1825                    transfer-ownership="full">
1826           <doc xml:whitespace="preserve">the length of @ints</doc>
1827           <type name="gint" c:type="int*"/>
1828         </parameter>
1829         <parameter name="ints"
1830                    direction="inout"
1831                    caller-allocates="0"
1832                    transfer-ownership="full">
1833           <doc xml:whitespace="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
1834           <array length="0" zero-terminated="0" c:type="int**">
1835             <type name="gint" c:type="int*"/>
1836           </array>
1837         </parameter>
1838       </parameters>
1839     </function>
1840     <function name="test_array_int_none_out"
1841               c:identifier="regress_test_array_int_none_out">
1842       <return-value transfer-ownership="none">
1843         <doc xml:whitespace="preserve">a static array of integers.</doc>
1844         <array length="0" zero-terminated="0" c:type="int*">
1845           <type name="gint" c:type="int"/>
1846         </array>
1847       </return-value>
1848       <parameters>
1849         <parameter name="len"
1850                    direction="out"
1851                    caller-allocates="0"
1852                    transfer-ownership="full">
1853           <doc xml:whitespace="preserve">length of the returned array.</doc>
1854           <type name="gint" c:type="int*"/>
1855         </parameter>
1856       </parameters>
1857     </function>
1858     <function name="test_array_int_null_in"
1859               c:identifier="regress_test_array_int_null_in">
1860       <return-value transfer-ownership="none">
1861         <type name="none" c:type="void"/>
1862       </return-value>
1863       <parameters>
1864         <parameter name="arr" transfer-ownership="none" allow-none="1">
1865           <array length="1" zero-terminated="0" c:type="int*">
1866             <type name="gint" c:type="int"/>
1867           </array>
1868         </parameter>
1869         <parameter name="len" transfer-ownership="none">
1870           <doc xml:whitespace="preserve">length</doc>
1871           <type name="gint" c:type="int"/>
1872         </parameter>
1873       </parameters>
1874     </function>
1875     <function name="test_array_int_null_out"
1876               c:identifier="regress_test_array_int_null_out">
1877       <return-value transfer-ownership="none">
1878         <type name="none" c:type="void"/>
1879       </return-value>
1880       <parameters>
1881         <parameter name="arr"
1882                    direction="out"
1883                    caller-allocates="0"
1884                    transfer-ownership="full"
1885                    allow-none="1">
1886           <array length="1" zero-terminated="0" c:type="int**">
1887             <type name="gint" c:type="int*"/>
1888           </array>
1889         </parameter>
1890         <parameter name="len"
1891                    direction="out"
1892                    caller-allocates="0"
1893                    transfer-ownership="full">
1894           <doc xml:whitespace="preserve">length</doc>
1895           <type name="gint" c:type="int*"/>
1896         </parameter>
1897       </parameters>
1898     </function>
1899     <function name="test_array_int_out"
1900               c:identifier="regress_test_array_int_out">
1901       <return-value transfer-ownership="none">
1902         <type name="none" c:type="void"/>
1903       </return-value>
1904       <parameters>
1905         <parameter name="n_ints"
1906                    direction="out"
1907                    caller-allocates="0"
1908                    transfer-ownership="full">
1909           <doc xml:whitespace="preserve">the length of @ints</doc>
1910           <type name="gint" c:type="int*"/>
1911         </parameter>
1912         <parameter name="ints"
1913                    direction="out"
1914                    caller-allocates="0"
1915                    transfer-ownership="full">
1916           <doc xml:whitespace="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
1917           <array length="0" zero-terminated="0" c:type="int**">
1918             <type name="gint" c:type="int*"/>
1919           </array>
1920         </parameter>
1921       </parameters>
1922     </function>
1923     <function name="test_async_ready_callback"
1924               c:identifier="regress_test_async_ready_callback">
1925       <return-value transfer-ownership="none">
1926         <type name="none" c:type="void"/>
1927       </return-value>
1928       <parameters>
1929         <parameter name="callback"
1930                    transfer-ownership="none"
1931                    allow-none="1"
1932                    scope="async">
1933           <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1934         </parameter>
1935       </parameters>
1936     </function>
1937     <function name="test_boolean" c:identifier="regress_test_boolean">
1938       <return-value transfer-ownership="none">
1939         <type name="gboolean" c:type="gboolean"/>
1940       </return-value>
1941       <parameters>
1942         <parameter name="in" transfer-ownership="none">
1943           <type name="gboolean" c:type="gboolean"/>
1944         </parameter>
1945       </parameters>
1946     </function>
1947     <function name="test_boolean_false"
1948               c:identifier="regress_test_boolean_false">
1949       <return-value transfer-ownership="none">
1950         <type name="gboolean" c:type="gboolean"/>
1951       </return-value>
1952       <parameters>
1953         <parameter name="in" transfer-ownership="none">
1954           <type name="gboolean" c:type="gboolean"/>
1955         </parameter>
1956       </parameters>
1957     </function>
1958     <function name="test_boolean_true"
1959               c:identifier="regress_test_boolean_true">
1960       <return-value transfer-ownership="none">
1961         <type name="gboolean" c:type="gboolean"/>
1962       </return-value>
1963       <parameters>
1964         <parameter name="in" transfer-ownership="none">
1965           <type name="gboolean" c:type="gboolean"/>
1966         </parameter>
1967       </parameters>
1968     </function>
1969     <function name="test_cairo_context_full_return"
1970               c:identifier="regress_test_cairo_context_full_return">
1971       <return-value transfer-ownership="full">
1972         <type name="cairo.Context" c:type="cairo_t*"/>
1973       </return-value>
1974     </function>
1975     <function name="test_cairo_context_none_in"
1976               c:identifier="regress_test_cairo_context_none_in">
1977       <return-value transfer-ownership="none">
1978         <type name="none" c:type="void"/>
1979       </return-value>
1980       <parameters>
1981         <parameter name="context" transfer-ownership="none">
1982           <type name="cairo.Context" c:type="cairo_t*"/>
1983         </parameter>
1984       </parameters>
1985     </function>
1986     <function name="test_cairo_surface_full_out"
1987               c:identifier="regress_test_cairo_surface_full_out">
1988       <return-value transfer-ownership="none">
1989         <type name="none" c:type="void"/>
1990       </return-value>
1991       <parameters>
1992         <parameter name="surface"
1993                    direction="out"
1994                    caller-allocates="0"
1995                    transfer-ownership="full">
1996           <type name="cairo.Surface" c:type="cairo_surface_t**"/>
1997         </parameter>
1998       </parameters>
1999     </function>
2000     <function name="test_cairo_surface_full_return"
2001               c:identifier="regress_test_cairo_surface_full_return">
2002       <return-value transfer-ownership="full">
2003         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
2004       </return-value>
2005     </function>
2006     <function name="test_cairo_surface_none_in"
2007               c:identifier="regress_test_cairo_surface_none_in">
2008       <return-value transfer-ownership="none">
2009         <type name="none" c:type="void"/>
2010       </return-value>
2011       <parameters>
2012         <parameter name="surface" transfer-ownership="none">
2013           <type name="cairo.Surface" c:type="cairo_surface_t*"/>
2014         </parameter>
2015       </parameters>
2016     </function>
2017     <function name="test_cairo_surface_none_return"
2018               c:identifier="regress_test_cairo_surface_none_return">
2019       <return-value transfer-ownership="none">
2020         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
2021       </return-value>
2022     </function>
2023     <function name="test_callback" c:identifier="regress_test_callback">
2024       <return-value transfer-ownership="none">
2025         <type name="gint" c:type="int"/>
2026       </return-value>
2027       <parameters>
2028         <parameter name="callback"
2029                    transfer-ownership="none"
2030                    allow-none="1"
2031                    scope="call">
2032           <type name="TestCallback" c:type="RegressTestCallback"/>
2033         </parameter>
2034       </parameters>
2035     </function>
2036     <function name="test_callback_async"
2037               c:identifier="regress_test_callback_async">
2038       <return-value transfer-ownership="none">
2039         <type name="none" c:type="void"/>
2040       </return-value>
2041       <parameters>
2042         <parameter name="callback"
2043                    transfer-ownership="none"
2044                    scope="async"
2045                    closure="1">
2046           <type name="TestCallbackUserData"
2047                 c:type="RegressTestCallbackUserData"/>
2048         </parameter>
2049         <parameter name="user_data" transfer-ownership="none">
2050           <type name="gpointer" c:type="gpointer"/>
2051         </parameter>
2052       </parameters>
2053     </function>
2054     <function name="test_callback_destroy_notify"
2055               c:identifier="regress_test_callback_destroy_notify">
2056       <doc xml:whitespace="preserve">Notified - callback persists until a DestroyNotify delegate
2057 is invoked.</doc>
2058       <return-value transfer-ownership="none">
2059         <type name="gint" c:type="int"/>
2060       </return-value>
2061       <parameters>
2062         <parameter name="callback"
2063                    transfer-ownership="none"
2064                    scope="notified"
2065                    closure="1"
2066                    destroy="2">
2067           <type name="TestCallbackUserData"
2068                 c:type="RegressTestCallbackUserData"/>
2069         </parameter>
2070         <parameter name="user_data" transfer-ownership="none">
2071           <type name="gpointer" c:type="gpointer"/>
2072         </parameter>
2073         <parameter name="notify" transfer-ownership="none" scope="async">
2074           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2075         </parameter>
2076       </parameters>
2077     </function>
2078     <function name="test_callback_thaw_async"
2079               c:identifier="regress_test_callback_thaw_async">
2080       <return-value transfer-ownership="none">
2081         <type name="gint" c:type="int"/>
2082       </return-value>
2083     </function>
2084     <function name="test_callback_thaw_notifications"
2085               c:identifier="regress_test_callback_thaw_notifications">
2086       <doc xml:whitespace="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
2087 adding up their return values, and removes them, invoking the
2088 corresponding destroy notfications.</doc>
2089       <return-value transfer-ownership="none">
2090         <doc xml:whitespace="preserve">Sum of the return values of the invoked callbacks.</doc>
2091         <type name="gint" c:type="int"/>
2092       </return-value>
2093     </function>
2094     <function name="test_callback_user_data"
2095               c:identifier="regress_test_callback_user_data">
2096       <doc xml:whitespace="preserve">Call - callback parameter persists for the duration of the method
2097 call and can be released on return.</doc>
2098       <return-value transfer-ownership="none">
2099         <type name="gint" c:type="int"/>
2100       </return-value>
2101       <parameters>
2102         <parameter name="callback"
2103                    transfer-ownership="none"
2104                    scope="call"
2105                    closure="1">
2106           <type name="TestCallbackUserData"
2107                 c:type="RegressTestCallbackUserData"/>
2108         </parameter>
2109         <parameter name="user_data" transfer-ownership="none">
2110           <type name="gpointer" c:type="gpointer"/>
2111         </parameter>
2112       </parameters>
2113     </function>
2114     <function name="test_closure" c:identifier="regress_test_closure">
2115       <return-value transfer-ownership="none">
2116         <type name="gint" c:type="int"/>
2117       </return-value>
2118       <parameters>
2119         <parameter name="closure" transfer-ownership="none">
2120           <type name="GObject.Closure" c:type="GClosure*"/>
2121         </parameter>
2122       </parameters>
2123     </function>
2124     <function name="test_closure_one_arg"
2125               c:identifier="regress_test_closure_one_arg">
2126       <return-value transfer-ownership="none">
2127         <type name="gint" c:type="int"/>
2128       </return-value>
2129       <parameters>
2130         <parameter name="closure" transfer-ownership="none">
2131           <type name="GObject.Closure" c:type="GClosure*"/>
2132         </parameter>
2133         <parameter name="arg" transfer-ownership="none">
2134           <type name="gint" c:type="int"/>
2135         </parameter>
2136       </parameters>
2137     </function>
2138     <function name="test_closure_variant"
2139               c:identifier="regress_test_closure_variant">
2140       <return-value transfer-ownership="full">
2141         <doc xml:whitespace="preserve">the return value of @closure</doc>
2142         <type name="GLib.Variant" c:type="GVariant*"/>
2143       </return-value>
2144       <parameters>
2145         <parameter name="closure" transfer-ownership="none">
2146           <doc xml:whitespace="preserve">GClosure which takes one GVariant and returns a GVariant</doc>
2147           <type name="GObject.Closure" c:type="GClosure*"/>
2148         </parameter>
2149         <parameter name="arg" transfer-ownership="none" allow-none="1">
2150           <doc xml:whitespace="preserve">a GVariant passed as argument to @closure</doc>
2151           <type name="GLib.Variant" c:type="GVariant*"/>
2152         </parameter>
2153       </parameters>
2154     </function>
2155     <function name="test_date_in_gvalue"
2156               c:identifier="regress_test_date_in_gvalue">
2157       <return-value transfer-ownership="full">
2158         <type name="GObject.Value" c:type="GValue*"/>
2159       </return-value>
2160     </function>
2161     <function name="test_double" c:identifier="regress_test_double">
2162       <return-value transfer-ownership="none">
2163         <type name="gdouble" c:type="gdouble"/>
2164       </return-value>
2165       <parameters>
2166         <parameter name="in" transfer-ownership="none">
2167           <type name="gdouble" c:type="gdouble"/>
2168         </parameter>
2169       </parameters>
2170     </function>
2171     <function name="test_enum_param"
2172               c:identifier="regress_test_enum_param"
2173               moved-to="TestEnum.param">
2174       <return-value transfer-ownership="none">
2175         <type name="utf8" c:type="gchar*"/>
2176       </return-value>
2177       <parameters>
2178         <parameter name="e" transfer-ownership="none">
2179           <type name="TestEnum" c:type="RegressTestEnum"/>
2180         </parameter>
2181       </parameters>
2182     </function>
2183     <function name="test_filename_return"
2184               c:identifier="regress_test_filename_return">
2185       <return-value transfer-ownership="full">
2186         <doc xml:whitespace="preserve">list of strings</doc>
2187         <type name="GLib.SList" c:type="GSList*">
2188           <type name="filename"/>
2189         </type>
2190       </return-value>
2191     </function>
2192     <function name="test_float" c:identifier="regress_test_float">
2193       <return-value transfer-ownership="none">
2194         <type name="gfloat" c:type="gfloat"/>
2195       </return-value>
2196       <parameters>
2197         <parameter name="in" transfer-ownership="none">
2198           <type name="gfloat" c:type="gfloat"/>
2199         </parameter>
2200       </parameters>
2201     </function>
2202     <function name="test_garray_container_return"
2203               c:identifier="regress_test_garray_container_return">
2204       <return-value transfer-ownership="container">
2205         <array name="GLib.PtrArray" c:type="GPtrArray*">
2206           <type name="utf8"/>
2207         </array>
2208       </return-value>
2209     </function>
2210     <function name="test_garray_full_return"
2211               c:identifier="regress_test_garray_full_return">
2212       <return-value transfer-ownership="full">
2213         <array name="GLib.PtrArray" c:type="GPtrArray*">
2214           <type name="utf8"/>
2215         </array>
2216       </return-value>
2217     </function>
2218     <function name="test_gerror_callback"
2219               c:identifier="regress_test_gerror_callback">
2220       <return-value transfer-ownership="none">
2221         <type name="none" c:type="void"/>
2222       </return-value>
2223       <parameters>
2224         <parameter name="callback" transfer-ownership="none" scope="call">
2225           <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
2226         </parameter>
2227       </parameters>
2228     </function>
2229     <function name="test_ghash_container_return"
2230               c:identifier="regress_test_ghash_container_return">
2231       <return-value transfer-ownership="container">
2232         <type name="GLib.HashTable" c:type="GHashTable*">
2233           <type name="utf8"/>
2234           <type name="utf8"/>
2235         </type>
2236       </return-value>
2237     </function>
2238     <function name="test_ghash_everything_return"
2239               c:identifier="regress_test_ghash_everything_return">
2240       <return-value transfer-ownership="full">
2241         <type name="GLib.HashTable" c:type="GHashTable*">
2242           <type name="utf8"/>
2243           <type name="utf8"/>
2244         </type>
2245       </return-value>
2246     </function>
2247     <function name="test_ghash_gvalue_in"
2248               c:identifier="regress_test_ghash_gvalue_in">
2249       <return-value transfer-ownership="none">
2250         <type name="none" c:type="void"/>
2251       </return-value>
2252       <parameters>
2253         <parameter name="hash" transfer-ownership="none">
2254           <doc xml:whitespace="preserve">the hash table returned by regress_test_ghash_gvalue_return().</doc>
2255           <type name="GLib.HashTable" c:type="GHashTable*">
2256             <type name="utf8"/>
2257             <type name="GObject.Value"/>
2258           </type>
2259         </parameter>
2260       </parameters>
2261     </function>
2262     <function name="test_ghash_gvalue_return"
2263               c:identifier="regress_test_ghash_gvalue_return">
2264       <return-value transfer-ownership="none">
2265         <type name="GLib.HashTable" c:type="GHashTable*">
2266           <type name="utf8"/>
2267           <type name="GObject.Value"/>
2268         </type>
2269       </return-value>
2270     </function>
2271     <function name="test_ghash_nested_everything_return"
2272               c:identifier="regress_test_ghash_nested_everything_return">
2273       <doc xml:whitespace="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
2274       <return-value transfer-ownership="full">
2275         <type name="GLib.HashTable" c:type="GHashTable*">
2276           <type name="utf8"/>
2277           <type name="GLib.HashTable">
2278             <type name="utf8"/>
2279             <type name="utf8"/>
2280           </type>
2281         </type>
2282       </return-value>
2283     </function>
2284     <function name="test_ghash_nested_everything_return2"
2285               c:identifier="regress_test_ghash_nested_everything_return2">
2286       <doc xml:whitespace="preserve">Another way of specifying nested parameterized types: using the
2287 element-type annotation.</doc>
2288       <return-value transfer-ownership="full">
2289         <type name="GLib.HashTable" c:type="GHashTable*">
2290           <type name="utf8"/>
2291           <type name="GLib.HashTable">
2292             <type name="utf8"/>
2293             <type name="utf8"/>
2294           </type>
2295         </type>
2296       </return-value>
2297     </function>
2298     <function name="test_ghash_nothing_in"
2299               c:identifier="regress_test_ghash_nothing_in">
2300       <return-value transfer-ownership="none">
2301         <type name="none" c:type="void"/>
2302       </return-value>
2303       <parameters>
2304         <parameter name="in" transfer-ownership="none">
2305           <type name="GLib.HashTable" c:type="GHashTable*">
2306             <type name="utf8"/>
2307             <type name="utf8"/>
2308           </type>
2309         </parameter>
2310       </parameters>
2311     </function>
2312     <function name="test_ghash_nothing_in2"
2313               c:identifier="regress_test_ghash_nothing_in2">
2314       <return-value transfer-ownership="none">
2315         <type name="none" c:type="void"/>
2316       </return-value>
2317       <parameters>
2318         <parameter name="in" transfer-ownership="none">
2319           <type name="GLib.HashTable" c:type="GHashTable*">
2320             <type name="utf8"/>
2321             <type name="utf8"/>
2322           </type>
2323         </parameter>
2324       </parameters>
2325     </function>
2326     <function name="test_ghash_nothing_return"
2327               c:identifier="regress_test_ghash_nothing_return">
2328       <return-value transfer-ownership="none">
2329         <type name="GLib.HashTable" c:type="GHashTable*">
2330           <type name="utf8"/>
2331           <type name="utf8"/>
2332         </type>
2333       </return-value>
2334     </function>
2335     <function name="test_ghash_nothing_return2"
2336               c:identifier="regress_test_ghash_nothing_return2">
2337       <return-value transfer-ownership="none">
2338         <type name="GLib.HashTable" c:type="GHashTable*">
2339           <type name="utf8"/>
2340           <type name="utf8"/>
2341         </type>
2342       </return-value>
2343     </function>
2344     <function name="test_ghash_null_in"
2345               c:identifier="regress_test_ghash_null_in">
2346       <return-value transfer-ownership="none">
2347         <type name="none" c:type="void"/>
2348       </return-value>
2349       <parameters>
2350         <parameter name="in" transfer-ownership="none" allow-none="1">
2351           <type name="GLib.HashTable" c:type="GHashTable*">
2352             <type name="utf8"/>
2353             <type name="utf8"/>
2354           </type>
2355         </parameter>
2356       </parameters>
2357     </function>
2358     <function name="test_ghash_null_out"
2359               c:identifier="regress_test_ghash_null_out">
2360       <return-value transfer-ownership="none">
2361         <type name="none" c:type="void"/>
2362       </return-value>
2363       <parameters>
2364         <parameter name="out"
2365                    direction="out"
2366                    caller-allocates="0"
2367                    transfer-ownership="full"
2368                    allow-none="1">
2369           <type name="GLib.HashTable" c:type="GHashTable**">
2370             <type name="utf8"/>
2371             <type name="utf8"/>
2372           </type>
2373         </parameter>
2374       </parameters>
2375     </function>
2376     <function name="test_ghash_null_return"
2377               c:identifier="regress_test_ghash_null_return">
2378       <return-value transfer-ownership="none">
2379         <type name="GLib.HashTable" c:type="GHashTable*">
2380           <type name="utf8"/>
2381           <type name="utf8"/>
2382         </type>
2383       </return-value>
2384     </function>
2385     <function name="test_glist_container_return"
2386               c:identifier="regress_test_glist_container_return">
2387       <return-value transfer-ownership="container">
2388         <type name="GLib.List" c:type="GList*">
2389           <type name="utf8"/>
2390         </type>
2391       </return-value>
2392     </function>
2393     <function name="test_glist_everything_return"
2394               c:identifier="regress_test_glist_everything_return">
2395       <return-value transfer-ownership="full">
2396         <type name="GLib.List" c:type="GList*">
2397           <type name="utf8"/>
2398         </type>
2399       </return-value>
2400     </function>
2401     <function name="test_glist_nothing_in"
2402               c:identifier="regress_test_glist_nothing_in">
2403       <return-value transfer-ownership="none">
2404         <type name="none" c:type="void"/>
2405       </return-value>
2406       <parameters>
2407         <parameter name="in" transfer-ownership="none">
2408           <type name="GLib.List" c:type="GList*">
2409             <type name="utf8"/>
2410           </type>
2411         </parameter>
2412       </parameters>
2413     </function>
2414     <function name="test_glist_nothing_in2"
2415               c:identifier="regress_test_glist_nothing_in2">
2416       <return-value transfer-ownership="none">
2417         <type name="none" c:type="void"/>
2418       </return-value>
2419       <parameters>
2420         <parameter name="in" transfer-ownership="none">
2421           <type name="GLib.List" c:type="GList*">
2422             <type name="utf8"/>
2423           </type>
2424         </parameter>
2425       </parameters>
2426     </function>
2427     <function name="test_glist_nothing_return"
2428               c:identifier="regress_test_glist_nothing_return">
2429       <return-value transfer-ownership="none">
2430         <type name="GLib.List" c:type="GList*">
2431           <type name="utf8"/>
2432         </type>
2433       </return-value>
2434     </function>
2435     <function name="test_glist_nothing_return2"
2436               c:identifier="regress_test_glist_nothing_return2">
2437       <return-value transfer-ownership="none">
2438         <type name="GLib.List" c:type="GList*">
2439           <type name="utf8"/>
2440         </type>
2441       </return-value>
2442     </function>
2443     <function name="test_glist_null_in"
2444               c:identifier="regress_test_glist_null_in">
2445       <return-value transfer-ownership="none">
2446         <type name="none" c:type="void"/>
2447       </return-value>
2448       <parameters>
2449         <parameter name="in" transfer-ownership="none" allow-none="1">
2450           <type name="GLib.SList" c:type="GSList*">
2451             <type name="utf8"/>
2452           </type>
2453         </parameter>
2454       </parameters>
2455     </function>
2456     <function name="test_glist_null_out"
2457               c:identifier="regress_test_glist_null_out">
2458       <return-value transfer-ownership="none">
2459         <type name="none" c:type="void"/>
2460       </return-value>
2461       <parameters>
2462         <parameter name="out_list"
2463                    direction="out"
2464                    caller-allocates="0"
2465                    transfer-ownership="full"
2466                    allow-none="1">
2467           <type name="GLib.SList" c:type="GSList**">
2468             <type name="utf8"/>
2469           </type>
2470         </parameter>
2471       </parameters>
2472     </function>
2473     <function name="test_gslist_container_return"
2474               c:identifier="regress_test_gslist_container_return">
2475       <return-value transfer-ownership="container">
2476         <type name="GLib.SList" c:type="GSList*">
2477           <type name="utf8"/>
2478         </type>
2479       </return-value>
2480     </function>
2481     <function name="test_gslist_everything_return"
2482               c:identifier="regress_test_gslist_everything_return">
2483       <return-value transfer-ownership="full">
2484         <type name="GLib.SList" c:type="GSList*">
2485           <type name="utf8"/>
2486         </type>
2487       </return-value>
2488     </function>
2489     <function name="test_gslist_nothing_in"
2490               c:identifier="regress_test_gslist_nothing_in">
2491       <return-value transfer-ownership="none">
2492         <type name="none" c:type="void"/>
2493       </return-value>
2494       <parameters>
2495         <parameter name="in" transfer-ownership="none">
2496           <type name="GLib.SList" c:type="GSList*">
2497             <type name="utf8"/>
2498           </type>
2499         </parameter>
2500       </parameters>
2501     </function>
2502     <function name="test_gslist_nothing_in2"
2503               c:identifier="regress_test_gslist_nothing_in2">
2504       <return-value transfer-ownership="none">
2505         <type name="none" c:type="void"/>
2506       </return-value>
2507       <parameters>
2508         <parameter name="in" transfer-ownership="none">
2509           <type name="GLib.SList" c:type="GSList*">
2510             <type name="utf8"/>
2511           </type>
2512         </parameter>
2513       </parameters>
2514     </function>
2515     <function name="test_gslist_nothing_return"
2516               c:identifier="regress_test_gslist_nothing_return">
2517       <return-value transfer-ownership="none">
2518         <type name="GLib.SList" c:type="GSList*">
2519           <type name="utf8"/>
2520         </type>
2521       </return-value>
2522     </function>
2523     <function name="test_gslist_nothing_return2"
2524               c:identifier="regress_test_gslist_nothing_return2">
2525       <return-value transfer-ownership="none">
2526         <type name="GLib.SList" c:type="GSList*">
2527           <type name="utf8"/>
2528         </type>
2529       </return-value>
2530     </function>
2531     <function name="test_gslist_null_in"
2532               c:identifier="regress_test_gslist_null_in">
2533       <return-value transfer-ownership="none">
2534         <type name="none" c:type="void"/>
2535       </return-value>
2536       <parameters>
2537         <parameter name="in" transfer-ownership="none" allow-none="1">
2538           <type name="GLib.SList" c:type="GSList*">
2539             <type name="utf8"/>
2540           </type>
2541         </parameter>
2542       </parameters>
2543     </function>
2544     <function name="test_gslist_null_out"
2545               c:identifier="regress_test_gslist_null_out">
2546       <return-value transfer-ownership="none">
2547         <type name="none" c:type="void"/>
2548       </return-value>
2549       <parameters>
2550         <parameter name="out_list"
2551                    direction="out"
2552                    caller-allocates="0"
2553                    transfer-ownership="full"
2554                    allow-none="1">
2555           <type name="GLib.SList" c:type="GSList**">
2556             <type name="utf8"/>
2557           </type>
2558         </parameter>
2559       </parameters>
2560     </function>
2561     <function name="test_gtype" c:identifier="regress_test_gtype">
2562       <return-value transfer-ownership="none">
2563         <type name="GType" c:type="GType"/>
2564       </return-value>
2565       <parameters>
2566         <parameter name="in" transfer-ownership="none">
2567           <type name="GType" c:type="GType"/>
2568         </parameter>
2569       </parameters>
2570     </function>
2571     <function name="test_gvariant_as" c:identifier="regress_test_gvariant_as">
2572       <return-value transfer-ownership="none">
2573         <doc xml:whitespace="preserve">New variant</doc>
2574         <type name="GLib.Variant" c:type="GVariant*"/>
2575       </return-value>
2576     </function>
2577     <function name="test_gvariant_asv"
2578               c:identifier="regress_test_gvariant_asv">
2579       <return-value transfer-ownership="none">
2580         <doc xml:whitespace="preserve">New variant</doc>
2581         <type name="GLib.Variant" c:type="GVariant*"/>
2582       </return-value>
2583     </function>
2584     <function name="test_gvariant_i" c:identifier="regress_test_gvariant_i">
2585       <return-value transfer-ownership="none">
2586         <doc xml:whitespace="preserve">New variant</doc>
2587         <type name="GLib.Variant" c:type="GVariant*"/>
2588       </return-value>
2589     </function>
2590     <function name="test_gvariant_s" c:identifier="regress_test_gvariant_s">
2591       <return-value transfer-ownership="none">
2592         <doc xml:whitespace="preserve">New variant</doc>
2593         <type name="GLib.Variant" c:type="GVariant*"/>
2594       </return-value>
2595     </function>
2596     <function name="test_gvariant_v" c:identifier="regress_test_gvariant_v">
2597       <return-value transfer-ownership="none">
2598         <doc xml:whitespace="preserve">New variant</doc>
2599         <type name="GLib.Variant" c:type="GVariant*"/>
2600       </return-value>
2601     </function>
2602     <function name="test_hash_table_callback"
2603               c:identifier="regress_test_hash_table_callback">
2604       <return-value transfer-ownership="none">
2605         <type name="none" c:type="void"/>
2606       </return-value>
2607       <parameters>
2608         <parameter name="data" transfer-ownership="none">
2609           <doc xml:whitespace="preserve">GHashTable that gets passed to callback</doc>
2610           <type name="GLib.HashTable" c:type="GHashTable*">
2611             <type name="utf8"/>
2612             <type name="gint"/>
2613           </type>
2614         </parameter>
2615         <parameter name="callback" transfer-ownership="none" scope="call">
2616           <type name="TestCallbackHashtable"
2617                 c:type="RegressTestCallbackHashtable"/>
2618         </parameter>
2619       </parameters>
2620     </function>
2621     <function name="test_int" c:identifier="regress_test_int">
2622       <return-value transfer-ownership="none">
2623         <type name="gint" c:type="gint"/>
2624       </return-value>
2625       <parameters>
2626         <parameter name="in" transfer-ownership="none">
2627           <type name="gint" c:type="gint"/>
2628         </parameter>
2629       </parameters>
2630     </function>
2631     <function name="test_int16" c:identifier="regress_test_int16">
2632       <return-value transfer-ownership="none">
2633         <type name="gint16" c:type="gint16"/>
2634       </return-value>
2635       <parameters>
2636         <parameter name="in" transfer-ownership="none">
2637           <type name="gint16" c:type="gint16"/>
2638         </parameter>
2639       </parameters>
2640     </function>
2641     <function name="test_int32" c:identifier="regress_test_int32">
2642       <return-value transfer-ownership="none">
2643         <type name="gint32" c:type="gint32"/>
2644       </return-value>
2645       <parameters>
2646         <parameter name="in" transfer-ownership="none">
2647           <type name="gint32" c:type="gint32"/>
2648         </parameter>
2649       </parameters>
2650     </function>
2651     <function name="test_int64" c:identifier="regress_test_int64">
2652       <return-value transfer-ownership="none">
2653         <type name="gint64" c:type="gint64"/>
2654       </return-value>
2655       <parameters>
2656         <parameter name="in" transfer-ownership="none">
2657           <type name="gint64" c:type="gint64"/>
2658         </parameter>
2659       </parameters>
2660     </function>
2661     <function name="test_int8" c:identifier="regress_test_int8">
2662       <return-value transfer-ownership="none">
2663         <type name="gint8" c:type="gint8"/>
2664       </return-value>
2665       <parameters>
2666         <parameter name="in" transfer-ownership="none">
2667           <type name="gint8" c:type="gint8"/>
2668         </parameter>
2669       </parameters>
2670     </function>
2671     <function name="test_int_out_utf8"
2672               c:identifier="regress_test_int_out_utf8">
2673       <return-value transfer-ownership="none">
2674         <type name="none" c:type="void"/>
2675       </return-value>
2676       <parameters>
2677         <parameter name="length"
2678                    direction="out"
2679                    caller-allocates="0"
2680                    transfer-ownership="full">
2681           <type name="gint" c:type="int*"/>
2682         </parameter>
2683         <parameter name="in" transfer-ownership="none">
2684           <type name="utf8" c:type="char*"/>
2685         </parameter>
2686       </parameters>
2687     </function>
2688     <function name="test_int_value_arg"
2689               c:identifier="regress_test_int_value_arg">
2690       <return-value transfer-ownership="none">
2691         <type name="gint" c:type="int"/>
2692       </return-value>
2693       <parameters>
2694         <parameter name="v" transfer-ownership="none">
2695           <type name="GObject.Value" c:type="GValue*"/>
2696         </parameter>
2697       </parameters>
2698     </function>
2699     <function name="test_long" c:identifier="regress_test_long">
2700       <return-value transfer-ownership="none">
2701         <type name="glong" c:type="glong"/>
2702       </return-value>
2703       <parameters>
2704         <parameter name="in" transfer-ownership="none">
2705           <type name="glong" c:type="glong"/>
2706         </parameter>
2707       </parameters>
2708     </function>
2709     <function name="test_multi_callback"
2710               c:identifier="regress_test_multi_callback">
2711       <return-value transfer-ownership="none">
2712         <type name="gint" c:type="int"/>
2713       </return-value>
2714       <parameters>
2715         <parameter name="callback"
2716                    transfer-ownership="none"
2717                    allow-none="1"
2718                    scope="call">
2719           <type name="TestCallback" c:type="RegressTestCallback"/>
2720         </parameter>
2721       </parameters>
2722     </function>
2723     <function name="test_multi_double_args"
2724               c:identifier="regress_test_multi_double_args">
2725       <return-value transfer-ownership="none">
2726         <type name="none" c:type="void"/>
2727       </return-value>
2728       <parameters>
2729         <parameter name="in" transfer-ownership="none">
2730           <type name="gdouble" c:type="gdouble"/>
2731         </parameter>
2732         <parameter name="one"
2733                    direction="out"
2734                    caller-allocates="0"
2735                    transfer-ownership="full">
2736           <type name="gdouble" c:type="gdouble*"/>
2737         </parameter>
2738         <parameter name="two"
2739                    direction="out"
2740                    caller-allocates="0"
2741                    transfer-ownership="full">
2742           <type name="gdouble" c:type="gdouble*"/>
2743         </parameter>
2744       </parameters>
2745     </function>
2746     <function name="test_multiline_doc_comments"
2747               c:identifier="regress_test_multiline_doc_comments">
2748       <doc xml:whitespace="preserve">This is a function.
2749
2750 It has multiple lines in the documentation.
2751
2752 The sky is blue.
2753
2754 You will give me your credit card number.</doc>
2755       <return-value transfer-ownership="none">
2756         <type name="none" c:type="void"/>
2757       </return-value>
2758     </function>
2759     <function name="test_nested_parameter"
2760               c:identifier="regress_test_nested_parameter">
2761       <doc xml:whitespace="preserve">&lt;informaltable&gt;
2762   &lt;tgroup cols="3"&gt;
2763     &lt;thead&gt;
2764       &lt;row&gt;
2765         &lt;entry&gt;Syntax&lt;/entry&gt;
2766         &lt;entry&gt;Explanation&lt;/entry&gt;
2767         &lt;entry&gt;Examples&lt;/entry&gt;
2768       &lt;/row&gt;
2769     &lt;/thead&gt;
2770     &lt;tbody&gt;
2771       &lt;row&gt;
2772         &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
2773         &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
2774                0 and 255 or percentages&lt;/entry&gt;
2775         &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
2776 rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
2777       &lt;/row&gt;
2778       &lt;row&gt;
2779         &lt;entry&gt;rgba(@r, @g, @b, @a)&lt;/entry&gt;
2780         &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
2781                @a is a floating point number between 0 and 1&lt;/entry&gt;
2782         &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
2783       &lt;/row&gt;
2784    &lt;/tbody&gt;
2785  &lt;/tgroup&gt;
2786 &lt;/informaltable&gt;
2787
2788 What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
2789       <return-value transfer-ownership="none">
2790         <type name="none" c:type="void"/>
2791       </return-value>
2792       <parameters>
2793         <parameter name="a" transfer-ownership="none">
2794           <doc xml:whitespace="preserve">An integer</doc>
2795           <type name="gint" c:type="int"/>
2796         </parameter>
2797       </parameters>
2798     </function>
2799     <function name="test_null_gerror_callback"
2800               c:identifier="regress_test_null_gerror_callback">
2801       <return-value transfer-ownership="none">
2802         <type name="none" c:type="void"/>
2803       </return-value>
2804       <parameters>
2805         <parameter name="callback" transfer-ownership="none" scope="call">
2806           <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
2807         </parameter>
2808       </parameters>
2809     </function>
2810     <function name="test_owned_gerror_callback"
2811               c:identifier="regress_test_owned_gerror_callback">
2812       <return-value transfer-ownership="none">
2813         <type name="none" c:type="void"/>
2814       </return-value>
2815       <parameters>
2816         <parameter name="callback" transfer-ownership="none" scope="call">
2817           <type name="TestCallbackOwnedGError"
2818                 c:type="RegressTestCallbackOwnedGError"/>
2819         </parameter>
2820       </parameters>
2821     </function>
2822     <function name="test_short" c:identifier="regress_test_short">
2823       <return-value transfer-ownership="none">
2824         <type name="gshort" c:type="gshort"/>
2825       </return-value>
2826       <parameters>
2827         <parameter name="in" transfer-ownership="none">
2828           <type name="gshort" c:type="gshort"/>
2829         </parameter>
2830       </parameters>
2831     </function>
2832     <function name="test_simple_boxed_a_const_return"
2833               c:identifier="regress_test_simple_boxed_a_const_return"
2834               moved-to="TestSimpleBoxedA.const_return">
2835       <return-value transfer-ownership="none">
2836         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
2837       </return-value>
2838     </function>
2839     <function name="test_simple_callback"
2840               c:identifier="regress_test_simple_callback">
2841       <return-value transfer-ownership="none">
2842         <type name="none" c:type="void"/>
2843       </return-value>
2844       <parameters>
2845         <parameter name="callback"
2846                    transfer-ownership="none"
2847                    allow-none="1"
2848                    scope="call">
2849           <type name="TestSimpleCallback" c:type="RegressTestSimpleCallback"/>
2850         </parameter>
2851       </parameters>
2852     </function>
2853     <function name="test_size" c:identifier="regress_test_size">
2854       <return-value transfer-ownership="none">
2855         <type name="gsize" c:type="gsize"/>
2856       </return-value>
2857       <parameters>
2858         <parameter name="in" transfer-ownership="none">
2859           <type name="gsize" c:type="gsize"/>
2860         </parameter>
2861       </parameters>
2862     </function>
2863     <function name="test_ssize" c:identifier="regress_test_ssize">
2864       <return-value transfer-ownership="none">
2865         <type name="gssize" c:type="gssize"/>
2866       </return-value>
2867       <parameters>
2868         <parameter name="in" transfer-ownership="none">
2869           <type name="gssize" c:type="gssize"/>
2870         </parameter>
2871       </parameters>
2872     </function>
2873     <function name="test_strv_in" c:identifier="regress_test_strv_in">
2874       <return-value transfer-ownership="none">
2875         <type name="gboolean" c:type="gboolean"/>
2876       </return-value>
2877       <parameters>
2878         <parameter name="arr" transfer-ownership="none">
2879           <array c:type="char**">
2880             <type name="utf8" c:type="char*"/>
2881           </array>
2882         </parameter>
2883       </parameters>
2884     </function>
2885     <function name="test_strv_in_gvalue"
2886               c:identifier="regress_test_strv_in_gvalue">
2887       <return-value transfer-ownership="full">
2888         <type name="GObject.Value" c:type="GValue*"/>
2889       </return-value>
2890     </function>
2891     <function name="test_strv_out" c:identifier="regress_test_strv_out">
2892       <return-value transfer-ownership="full">
2893         <array c:type="char**">
2894           <type name="utf8"/>
2895         </array>
2896       </return-value>
2897     </function>
2898     <function name="test_strv_out_c" c:identifier="regress_test_strv_out_c">
2899       <return-value transfer-ownership="none">
2900         <array c:type="char**">
2901           <type name="utf8"/>
2902         </array>
2903       </return-value>
2904     </function>
2905     <function name="test_strv_out_container"
2906               c:identifier="regress_test_strv_out_container">
2907       <return-value transfer-ownership="container">
2908         <array c:type="char**">
2909           <type name="utf8"/>
2910         </array>
2911       </return-value>
2912     </function>
2913     <function name="test_strv_outarg" c:identifier="regress_test_strv_outarg">
2914       <return-value transfer-ownership="none">
2915         <type name="none" c:type="void"/>
2916       </return-value>
2917       <parameters>
2918         <parameter name="retp"
2919                    direction="out"
2920                    caller-allocates="0"
2921                    transfer-ownership="container">
2922           <array c:type="char***">
2923             <type name="utf8" c:type="char**"/>
2924           </array>
2925         </parameter>
2926       </parameters>
2927     </function>
2928     <function name="test_timet" c:identifier="regress_test_timet">
2929       <return-value transfer-ownership="none">
2930         <type name="glong" c:type="time_t"/>
2931       </return-value>
2932       <parameters>
2933         <parameter name="in" transfer-ownership="none">
2934           <type name="glong" c:type="time_t"/>
2935         </parameter>
2936       </parameters>
2937     </function>
2938     <function name="test_torture_signature_0"
2939               c:identifier="regress_test_torture_signature_0">
2940       <return-value transfer-ownership="none">
2941         <type name="none" c:type="void"/>
2942       </return-value>
2943       <parameters>
2944         <parameter name="x" transfer-ownership="none">
2945           <type name="gint" c:type="int"/>
2946         </parameter>
2947         <parameter name="y"
2948                    direction="out"
2949                    caller-allocates="0"
2950                    transfer-ownership="full">
2951           <type name="gdouble" c:type="double*"/>
2952         </parameter>
2953         <parameter name="z"
2954                    direction="out"
2955                    caller-allocates="0"
2956                    transfer-ownership="full">
2957           <type name="gint" c:type="int*"/>
2958         </parameter>
2959         <parameter name="foo" transfer-ownership="none">
2960           <type name="utf8" c:type="char*"/>
2961         </parameter>
2962         <parameter name="q"
2963                    direction="out"
2964                    caller-allocates="0"
2965                    transfer-ownership="full">
2966           <type name="gint" c:type="int*"/>
2967         </parameter>
2968         <parameter name="m" transfer-ownership="none">
2969           <type name="guint" c:type="guint"/>
2970         </parameter>
2971       </parameters>
2972     </function>
2973     <function name="test_torture_signature_1"
2974               c:identifier="regress_test_torture_signature_1"
2975               throws="1">
2976       <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
2977       <return-value transfer-ownership="none">
2978         <type name="gboolean" c:type="gboolean"/>
2979       </return-value>
2980       <parameters>
2981         <parameter name="x" transfer-ownership="none">
2982           <type name="gint" c:type="int"/>
2983         </parameter>
2984         <parameter name="y"
2985                    direction="out"
2986                    caller-allocates="0"
2987                    transfer-ownership="full">
2988           <type name="gdouble" c:type="double*"/>
2989         </parameter>
2990         <parameter name="z"
2991                    direction="out"
2992                    caller-allocates="0"
2993                    transfer-ownership="full">
2994           <type name="gint" c:type="int*"/>
2995         </parameter>
2996         <parameter name="foo" transfer-ownership="none">
2997           <type name="utf8" c:type="char*"/>
2998         </parameter>
2999         <parameter name="q"
3000                    direction="out"
3001                    caller-allocates="0"
3002                    transfer-ownership="full">
3003           <type name="gint" c:type="int*"/>
3004         </parameter>
3005         <parameter name="m" transfer-ownership="none">
3006           <type name="guint" c:type="guint"/>
3007         </parameter>
3008       </parameters>
3009     </function>
3010     <function name="test_torture_signature_2"
3011               c:identifier="regress_test_torture_signature_2">
3012       <return-value transfer-ownership="none">
3013         <type name="none" c:type="void"/>
3014       </return-value>
3015       <parameters>
3016         <parameter name="x" transfer-ownership="none">
3017           <type name="gint" c:type="int"/>
3018         </parameter>
3019         <parameter name="callback"
3020                    transfer-ownership="none"
3021                    scope="notified"
3022                    closure="2"
3023                    destroy="3">
3024           <type name="TestCallbackUserData"
3025                 c:type="RegressTestCallbackUserData"/>
3026         </parameter>
3027         <parameter name="user_data" transfer-ownership="none">
3028           <type name="gpointer" c:type="gpointer"/>
3029         </parameter>
3030         <parameter name="notify" transfer-ownership="none" scope="async">
3031           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
3032         </parameter>
3033         <parameter name="y"
3034                    direction="out"
3035                    caller-allocates="0"
3036                    transfer-ownership="full">
3037           <type name="gdouble" c:type="double*"/>
3038         </parameter>
3039         <parameter name="z"
3040                    direction="out"
3041                    caller-allocates="0"
3042                    transfer-ownership="full">
3043           <type name="gint" c:type="int*"/>
3044         </parameter>
3045         <parameter name="foo" transfer-ownership="none">
3046           <type name="utf8" c:type="char*"/>
3047         </parameter>
3048         <parameter name="q"
3049                    direction="out"
3050                    caller-allocates="0"
3051                    transfer-ownership="full">
3052           <type name="gint" c:type="int*"/>
3053         </parameter>
3054         <parameter name="m" transfer-ownership="none">
3055           <type name="guint" c:type="guint"/>
3056         </parameter>
3057       </parameters>
3058     </function>
3059     <function name="test_uint" c:identifier="regress_test_uint">
3060       <return-value transfer-ownership="none">
3061         <type name="guint" c:type="guint"/>
3062       </return-value>
3063       <parameters>
3064         <parameter name="in" transfer-ownership="none">
3065           <type name="guint" c:type="guint"/>
3066         </parameter>
3067       </parameters>
3068     </function>
3069     <function name="test_uint16" c:identifier="regress_test_uint16">
3070       <return-value transfer-ownership="none">
3071         <type name="guint16" c:type="guint16"/>
3072       </return-value>
3073       <parameters>
3074         <parameter name="in" transfer-ownership="none">
3075           <type name="guint16" c:type="guint16"/>
3076         </parameter>
3077       </parameters>
3078     </function>
3079     <function name="test_uint32" c:identifier="regress_test_uint32">
3080       <return-value transfer-ownership="none">
3081         <type name="guint32" c:type="guint32"/>
3082       </return-value>
3083       <parameters>
3084         <parameter name="in" transfer-ownership="none">
3085           <type name="guint32" c:type="guint32"/>
3086         </parameter>
3087       </parameters>
3088     </function>
3089     <function name="test_uint64" c:identifier="regress_test_uint64">
3090       <return-value transfer-ownership="none">
3091         <type name="guint64" c:type="guint64"/>
3092       </return-value>
3093       <parameters>
3094         <parameter name="in" transfer-ownership="none">
3095           <type name="guint64" c:type="guint64"/>
3096         </parameter>
3097       </parameters>
3098     </function>
3099     <function name="test_uint8" c:identifier="regress_test_uint8">
3100       <return-value transfer-ownership="none">
3101         <type name="guint8" c:type="guint8"/>
3102       </return-value>
3103       <parameters>
3104         <parameter name="in" transfer-ownership="none">
3105           <type name="guint8" c:type="guint8"/>
3106         </parameter>
3107       </parameters>
3108     </function>
3109     <function name="test_ulong" c:identifier="regress_test_ulong">
3110       <return-value transfer-ownership="none">
3111         <type name="gulong" c:type="gulong"/>
3112       </return-value>
3113       <parameters>
3114         <parameter name="in" transfer-ownership="none">
3115           <type name="gulong" c:type="gulong"/>
3116         </parameter>
3117       </parameters>
3118     </function>
3119     <function name="test_unichar" c:identifier="regress_test_unichar">
3120       <return-value transfer-ownership="none">
3121         <type name="gunichar" c:type="gunichar"/>
3122       </return-value>
3123       <parameters>
3124         <parameter name="in" transfer-ownership="none">
3125           <type name="gunichar" c:type="gunichar"/>
3126         </parameter>
3127       </parameters>
3128     </function>
3129     <function name="test_unsigned_enum_param"
3130               c:identifier="regress_test_unsigned_enum_param">
3131       <return-value transfer-ownership="none">
3132         <type name="utf8" c:type="gchar*"/>
3133       </return-value>
3134       <parameters>
3135         <parameter name="e" transfer-ownership="none">
3136           <type name="TestEnumUnsigned" c:type="RegressTestEnumUnsigned"/>
3137         </parameter>
3138       </parameters>
3139     </function>
3140     <function name="test_ushort" c:identifier="regress_test_ushort">
3141       <return-value transfer-ownership="none">
3142         <type name="gushort" c:type="gushort"/>
3143       </return-value>
3144       <parameters>
3145         <parameter name="in" transfer-ownership="none">
3146           <type name="gushort" c:type="gushort"/>
3147         </parameter>
3148       </parameters>
3149     </function>
3150     <function name="test_utf8_const_in"
3151               c:identifier="regress_test_utf8_const_in">
3152       <return-value transfer-ownership="none">
3153         <type name="none" c:type="void"/>
3154       </return-value>
3155       <parameters>
3156         <parameter name="in" transfer-ownership="none">
3157           <type name="utf8" c:type="char*"/>
3158         </parameter>
3159       </parameters>
3160     </function>
3161     <function name="test_utf8_const_return"
3162               c:identifier="regress_test_utf8_const_return">
3163       <return-value transfer-ownership="none">
3164         <doc xml:whitespace="preserve">UTF-8 string</doc>
3165         <type name="utf8" c:type="char*"/>
3166       </return-value>
3167     </function>
3168     <function name="test_utf8_inout" c:identifier="regress_test_utf8_inout">
3169       <return-value transfer-ownership="none">
3170         <type name="none" c:type="void"/>
3171       </return-value>
3172       <parameters>
3173         <parameter name="inout"
3174                    direction="inout"
3175                    caller-allocates="0"
3176                    transfer-ownership="full">
3177           <type name="utf8" c:type="char**"/>
3178         </parameter>
3179       </parameters>
3180     </function>
3181     <function name="test_utf8_nonconst_return"
3182               c:identifier="regress_test_utf8_nonconst_return">
3183       <return-value transfer-ownership="full">
3184         <doc xml:whitespace="preserve">UTF-8 string</doc>
3185         <type name="utf8" c:type="char*"/>
3186       </return-value>
3187     </function>
3188     <function name="test_utf8_null_in"
3189               c:identifier="regress_test_utf8_null_in">
3190       <return-value transfer-ownership="none">
3191         <type name="none" c:type="void"/>
3192       </return-value>
3193       <parameters>
3194         <parameter name="in" transfer-ownership="none" allow-none="1">
3195           <type name="utf8" c:type="char*"/>
3196         </parameter>
3197       </parameters>
3198     </function>
3199     <function name="test_utf8_null_out"
3200               c:identifier="regress_test_utf8_null_out">
3201       <return-value transfer-ownership="none">
3202         <type name="none" c:type="void"/>
3203       </return-value>
3204       <parameters>
3205         <parameter name="char_out"
3206                    direction="out"
3207                    caller-allocates="0"
3208                    transfer-ownership="full"
3209                    allow-none="1">
3210           <type name="utf8" c:type="char**"/>
3211         </parameter>
3212       </parameters>
3213     </function>
3214     <function name="test_utf8_out" c:identifier="regress_test_utf8_out">
3215       <return-value transfer-ownership="none">
3216         <type name="none" c:type="void"/>
3217       </return-value>
3218       <parameters>
3219         <parameter name="out"
3220                    direction="out"
3221                    caller-allocates="0"
3222                    transfer-ownership="full">
3223           <type name="utf8" c:type="char**"/>
3224         </parameter>
3225       </parameters>
3226     </function>
3227     <function name="test_utf8_out_nonconst_return"
3228               c:identifier="regress_test_utf8_out_nonconst_return">
3229       <return-value transfer-ownership="full">
3230         <doc xml:whitespace="preserve">a copy of "first"</doc>
3231         <type name="utf8" c:type="char*"/>
3232       </return-value>
3233       <parameters>
3234         <parameter name="out"
3235                    direction="out"
3236                    caller-allocates="0"
3237                    transfer-ownership="full">
3238           <doc xml:whitespace="preserve">a copy of "second"</doc>
3239           <type name="utf8" c:type="char**"/>
3240         </parameter>
3241       </parameters>
3242     </function>
3243     <function name="test_utf8_out_out"
3244               c:identifier="regress_test_utf8_out_out">
3245       <return-value transfer-ownership="none">
3246         <type name="none" c:type="void"/>
3247       </return-value>
3248       <parameters>
3249         <parameter name="out0"
3250                    direction="out"
3251                    caller-allocates="0"
3252                    transfer-ownership="full">
3253           <doc xml:whitespace="preserve">a copy of "first"</doc>
3254           <type name="utf8" c:type="char**"/>
3255         </parameter>
3256         <parameter name="out1"
3257                    direction="out"
3258                    caller-allocates="0"
3259                    transfer-ownership="full">
3260           <doc xml:whitespace="preserve">a copy of "second"</doc>
3261           <type name="utf8" c:type="char**"/>
3262         </parameter>
3263       </parameters>
3264     </function>
3265     <function name="test_value_get_fundamental_object"
3266               c:identifier="regress_test_value_get_fundamental_object"
3267               introspectable="0">
3268       <return-value>
3269         <type name="TestFundamentalObject"
3270               c:type="RegressTestFundamentalObject*"/>
3271       </return-value>
3272       <parameters>
3273         <parameter name="value" transfer-ownership="none">
3274           <type name="GObject.Value" c:type="GValue*"/>
3275         </parameter>
3276       </parameters>
3277     </function>
3278     <function name="test_value_return"
3279               c:identifier="regress_test_value_return">
3280       <return-value transfer-ownership="none">
3281         <doc xml:whitespace="preserve">the int wrapped in a GValue.</doc>
3282         <type name="GObject.Value" c:type="GValue*"/>
3283       </return-value>
3284       <parameters>
3285         <parameter name="i" transfer-ownership="none">
3286           <doc xml:whitespace="preserve">an int</doc>
3287           <type name="gint" c:type="int"/>
3288         </parameter>
3289       </parameters>
3290     </function>
3291     <function name="test_value_set_fundamental_object"
3292               c:identifier="regress_test_value_set_fundamental_object"
3293               introspectable="0">
3294       <return-value transfer-ownership="none">
3295         <type name="none" c:type="void"/>
3296       </return-value>
3297       <parameters>
3298         <parameter name="value" transfer-ownership="none">
3299           <type name="GObject.Value" c:type="GValue*"/>
3300         </parameter>
3301         <parameter name="fundamental_object" transfer-ownership="none">
3302           <type name="TestFundamentalObject"
3303                 c:type="RegressTestFundamentalObject*"/>
3304         </parameter>
3305       </parameters>
3306     </function>
3307   </namespace>
3308 </repository>