81c0a6badcb9ae1df3a6beeb5f8e0e19f83d783b
[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_obj"
625               c:identifier="regress_test_obj_emit_sig_with_obj">
626         <return-value transfer-ownership="none">
627           <type name="none" c:type="void"/>
628         </return-value>
629       </method>
630       <method name="forced_method" c:identifier="regress_forced_method">
631         <return-value transfer-ownership="none">
632           <type name="none" c:type="void"/>
633         </return-value>
634       </method>
635       <method name="instance_method"
636               c:identifier="regress_test_obj_instance_method">
637         <return-value transfer-ownership="none">
638           <type name="gint" c:type="int"/>
639         </return-value>
640       </method>
641       <method name="instance_method_callback"
642               c:identifier="regress_test_obj_instance_method_callback">
643         <return-value transfer-ownership="none">
644           <type name="none" c:type="void"/>
645         </return-value>
646         <parameters>
647           <parameter name="callback"
648                      transfer-ownership="none"
649                      allow-none="1"
650                      scope="call">
651             <type name="TestCallback" c:type="RegressTestCallback"/>
652           </parameter>
653         </parameters>
654       </method>
655       <method name="set_bare" c:identifier="regress_test_obj_set_bare">
656         <return-value transfer-ownership="none">
657           <type name="none" c:type="void"/>
658         </return-value>
659         <parameters>
660           <parameter name="bare" transfer-ownership="none" allow-none="1">
661             <type name="GObject.Object" c:type="GObject*"/>
662           </parameter>
663         </parameters>
664       </method>
665       <method name="skip_inout_param"
666               c:identifier="regress_test_obj_skip_inout_param"
667               throws="1">
668         <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
669         <return-value transfer-ownership="none">
670           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
671           <type name="gboolean" c:type="gboolean"/>
672         </return-value>
673         <parameters>
674           <parameter name="a" transfer-ownership="none">
675             <doc xml:whitespace="preserve">Parameter.</doc>
676             <type name="gint" c:type="gint"/>
677           </parameter>
678           <parameter name="out_b"
679                      direction="out"
680                      caller-allocates="0"
681                      transfer-ownership="full">
682             <doc xml:whitespace="preserve">Return value.</doc>
683             <type name="gint" c:type="gint*"/>
684           </parameter>
685           <parameter name="c" transfer-ownership="none">
686             <doc xml:whitespace="preserve">Other parameter.</doc>
687             <type name="gdouble" c:type="gdouble"/>
688           </parameter>
689           <parameter name="inout_d"
690                      direction="inout"
691                      caller-allocates="0"
692                      transfer-ownership="full"
693                      skip="1">
694             <doc xml:whitespace="preserve">Will be incremented.</doc>
695             <type name="gint" c:type="gint*"/>
696           </parameter>
697           <parameter name="out_sum"
698                      direction="out"
699                      caller-allocates="0"
700                      transfer-ownership="full">
701             <doc xml:whitespace="preserve">Return value.</doc>
702             <type name="gint" c:type="gint*"/>
703           </parameter>
704           <parameter name="num1" transfer-ownership="none">
705             <doc xml:whitespace="preserve">Number.</doc>
706             <type name="gint" c:type="gint"/>
707           </parameter>
708           <parameter name="num2" transfer-ownership="none">
709             <doc xml:whitespace="preserve">Number.</doc>
710             <type name="gint" c:type="gint"/>
711           </parameter>
712         </parameters>
713       </method>
714       <method name="skip_out_param"
715               c:identifier="regress_test_obj_skip_out_param"
716               throws="1">
717         <doc xml:whitespace="preserve">Check that the out value is skipped</doc>
718         <return-value transfer-ownership="none">
719           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
720           <type name="gboolean" c:type="gboolean"/>
721         </return-value>
722         <parameters>
723           <parameter name="a" transfer-ownership="none">
724             <doc xml:whitespace="preserve">Parameter.</doc>
725             <type name="gint" c:type="gint"/>
726           </parameter>
727           <parameter name="out_b"
728                      direction="out"
729                      caller-allocates="0"
730                      transfer-ownership="full"
731                      skip="1">
732             <doc xml:whitespace="preserve">Return value.</doc>
733             <type name="gint" c:type="gint*"/>
734           </parameter>
735           <parameter name="c" transfer-ownership="none">
736             <doc xml:whitespace="preserve">Other parameter.</doc>
737             <type name="gdouble" c:type="gdouble"/>
738           </parameter>
739           <parameter name="inout_d"
740                      direction="inout"
741                      caller-allocates="0"
742                      transfer-ownership="full">
743             <doc xml:whitespace="preserve">Will be incremented.</doc>
744             <type name="gint" c:type="gint*"/>
745           </parameter>
746           <parameter name="out_sum"
747                      direction="out"
748                      caller-allocates="0"
749                      transfer-ownership="full">
750             <doc xml:whitespace="preserve">Return value.</doc>
751             <type name="gint" c:type="gint*"/>
752           </parameter>
753           <parameter name="num1" transfer-ownership="none">
754             <doc xml:whitespace="preserve">Number.</doc>
755             <type name="gint" c:type="gint"/>
756           </parameter>
757           <parameter name="num2" transfer-ownership="none">
758             <doc xml:whitespace="preserve">Number.</doc>
759             <type name="gint" c:type="gint"/>
760           </parameter>
761         </parameters>
762       </method>
763       <method name="skip_param"
764               c:identifier="regress_test_obj_skip_param"
765               throws="1">
766         <doc xml:whitespace="preserve">Check that a parameter is skipped</doc>
767         <return-value transfer-ownership="none">
768           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
769           <type name="gboolean" c:type="gboolean"/>
770         </return-value>
771         <parameters>
772           <parameter name="a" transfer-ownership="none">
773             <doc xml:whitespace="preserve">Parameter.</doc>
774             <type name="gint" c:type="gint"/>
775           </parameter>
776           <parameter name="out_b"
777                      direction="out"
778                      caller-allocates="0"
779                      transfer-ownership="full">
780             <doc xml:whitespace="preserve">Return value.</doc>
781             <type name="gint" c:type="gint*"/>
782           </parameter>
783           <parameter name="c" transfer-ownership="none" skip="1">
784             <doc xml:whitespace="preserve">Other parameter.</doc>
785             <type name="gdouble" c:type="gdouble"/>
786           </parameter>
787           <parameter name="inout_d"
788                      direction="inout"
789                      caller-allocates="0"
790                      transfer-ownership="full">
791             <doc xml:whitespace="preserve">Will be incremented.</doc>
792             <type name="gint" c:type="gint*"/>
793           </parameter>
794           <parameter name="out_sum"
795                      direction="out"
796                      caller-allocates="0"
797                      transfer-ownership="full">
798             <doc xml:whitespace="preserve">Return value.</doc>
799             <type name="gint" c:type="gint*"/>
800           </parameter>
801           <parameter name="num1" transfer-ownership="none">
802             <doc xml:whitespace="preserve">Number.</doc>
803             <type name="gint" c:type="gint"/>
804           </parameter>
805           <parameter name="num2" transfer-ownership="none">
806             <doc xml:whitespace="preserve">Number.</doc>
807             <type name="gint" c:type="gint"/>
808           </parameter>
809         </parameters>
810       </method>
811       <method name="skip_return_val"
812               c:identifier="regress_test_obj_skip_return_val"
813               throws="1">
814         <doc xml:whitespace="preserve">Check that the return value is skipped</doc>
815         <return-value transfer-ownership="none" skip="1">
816           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
817           <type name="gboolean" c:type="gboolean"/>
818         </return-value>
819         <parameters>
820           <parameter name="a" transfer-ownership="none">
821             <doc xml:whitespace="preserve">Parameter.</doc>
822             <type name="gint" c:type="gint"/>
823           </parameter>
824           <parameter name="out_b"
825                      direction="out"
826                      caller-allocates="0"
827                      transfer-ownership="full">
828             <doc xml:whitespace="preserve">A return value.</doc>
829             <type name="gint" c:type="gint*"/>
830           </parameter>
831           <parameter name="c" transfer-ownership="none">
832             <doc xml:whitespace="preserve">Other parameter.</doc>
833             <type name="gdouble" c:type="gdouble"/>
834           </parameter>
835           <parameter name="inout_d"
836                      direction="inout"
837                      caller-allocates="0"
838                      transfer-ownership="full">
839             <doc xml:whitespace="preserve">Will be incremented.</doc>
840             <type name="gint" c:type="gint*"/>
841           </parameter>
842           <parameter name="out_sum"
843                      direction="out"
844                      caller-allocates="0"
845                      transfer-ownership="full">
846             <doc xml:whitespace="preserve">Return value.</doc>
847             <type name="gint" c:type="gint*"/>
848           </parameter>
849           <parameter name="num1" transfer-ownership="none">
850             <doc xml:whitespace="preserve">Number.</doc>
851             <type name="gint" c:type="gint"/>
852           </parameter>
853           <parameter name="num2" transfer-ownership="none">
854             <doc xml:whitespace="preserve">Number.</doc>
855             <type name="gint" c:type="gint"/>
856           </parameter>
857         </parameters>
858       </method>
859       <method name="skip_return_val_no_out"
860               c:identifier="regress_test_obj_skip_return_val_no_out"
861               throws="1">
862         <doc xml:whitespace="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
863 raise an error.</doc>
864         <return-value transfer-ownership="none" skip="1">
865           <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
866           <type name="gboolean" c:type="gboolean"/>
867         </return-value>
868         <parameters>
869           <parameter name="a" transfer-ownership="none">
870             <doc xml:whitespace="preserve">Parameter.</doc>
871             <type name="gint" c:type="gint"/>
872           </parameter>
873         </parameters>
874       </method>
875       <method name="torture_signature_0"
876               c:identifier="regress_test_obj_torture_signature_0">
877         <return-value transfer-ownership="none">
878           <type name="none" c:type="void"/>
879         </return-value>
880         <parameters>
881           <parameter name="x" transfer-ownership="none">
882             <type name="gint" c:type="int"/>
883           </parameter>
884           <parameter name="y"
885                      direction="out"
886                      caller-allocates="0"
887                      transfer-ownership="full">
888             <type name="gdouble" c:type="double*"/>
889           </parameter>
890           <parameter name="z"
891                      direction="out"
892                      caller-allocates="0"
893                      transfer-ownership="full">
894             <type name="gint" c:type="int*"/>
895           </parameter>
896           <parameter name="foo" transfer-ownership="none">
897             <type name="utf8" c:type="char*"/>
898           </parameter>
899           <parameter name="q"
900                      direction="out"
901                      caller-allocates="0"
902                      transfer-ownership="full">
903             <type name="gint" c:type="int*"/>
904           </parameter>
905           <parameter name="m" transfer-ownership="none">
906             <type name="guint" c:type="guint"/>
907           </parameter>
908         </parameters>
909       </method>
910       <method name="torture_signature_1"
911               c:identifier="regress_test_obj_torture_signature_1"
912               throws="1">
913         <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
914         <return-value transfer-ownership="none">
915           <type name="gboolean" c:type="gboolean"/>
916         </return-value>
917         <parameters>
918           <parameter name="x" transfer-ownership="none">
919             <type name="gint" c:type="int"/>
920           </parameter>
921           <parameter name="y"
922                      direction="out"
923                      caller-allocates="0"
924                      transfer-ownership="full">
925             <type name="gdouble" c:type="double*"/>
926           </parameter>
927           <parameter name="z"
928                      direction="out"
929                      caller-allocates="0"
930                      transfer-ownership="full">
931             <type name="gint" c:type="int*"/>
932           </parameter>
933           <parameter name="foo" transfer-ownership="none">
934             <type name="utf8" c:type="char*"/>
935           </parameter>
936           <parameter name="q"
937                      direction="out"
938                      caller-allocates="0"
939                      transfer-ownership="full">
940             <type name="gint" c:type="int*"/>
941           </parameter>
942           <parameter name="m" transfer-ownership="none">
943             <type name="guint" c:type="guint"/>
944           </parameter>
945         </parameters>
946       </method>
947       <property name="bare" writable="1" transfer-ownership="none">
948         <type name="GObject.Object"/>
949       </property>
950       <property name="boxed" writable="1" transfer-ownership="none">
951         <type name="TestBoxed"/>
952       </property>
953       <property name="double" writable="1" transfer-ownership="none">
954         <type name="gdouble"/>
955       </property>
956       <property name="float" writable="1" transfer-ownership="none">
957         <type name="gfloat"/>
958       </property>
959       <property name="gtype" writable="1" transfer-ownership="none">
960         <type name="GType"/>
961       </property>
962       <property name="hash-table" writable="1" transfer-ownership="container">
963         <type name="GLib.HashTable">
964           <type name="utf8"/>
965           <type name="gint8"/>
966         </type>
967       </property>
968       <property name="hash-table-old"
969                 writable="1"
970                 transfer-ownership="container">
971         <type name="GLib.HashTable">
972           <type name="utf8"/>
973           <type name="gint8"/>
974         </type>
975       </property>
976       <property name="int" writable="1" transfer-ownership="none">
977         <type name="gint"/>
978       </property>
979       <property name="list" writable="1" transfer-ownership="none">
980         <type name="GLib.List">
981           <type name="utf8"/>
982         </type>
983       </property>
984       <property name="list-old" writable="1" transfer-ownership="none">
985         <type name="GLib.List">
986           <type name="utf8"/>
987         </type>
988       </property>
989       <property name="string" writable="1" transfer-ownership="none">
990         <type name="utf8"/>
991       </property>
992       <field name="parent_instance">
993         <type name="GObject.Object" c:type="GObject"/>
994       </field>
995       <field name="bare">
996         <type name="GObject.Object" c:type="GObject*"/>
997       </field>
998       <field name="boxed">
999         <type name="TestBoxed" c:type="RegressTestBoxed*"/>
1000       </field>
1001       <field name="hash_table">
1002         <type name="GLib.HashTable" c:type="GHashTable*">
1003           <type name="gpointer" c:type="gpointer"/>
1004           <type name="gpointer" c:type="gpointer"/>
1005         </type>
1006       </field>
1007       <field name="list">
1008         <type name="GLib.List" c:type="GList*">
1009           <type name="gpointer" c:type="gpointer"/>
1010         </type>
1011       </field>
1012       <field name="some_int8">
1013         <type name="gint8" c:type="gint8"/>
1014       </field>
1015       <field name="some_float">
1016         <type name="gfloat" c:type="float"/>
1017       </field>
1018       <field name="some_double">
1019         <type name="gdouble" c:type="double"/>
1020       </field>
1021       <field name="string">
1022         <type name="utf8" c:type="char*"/>
1023       </field>
1024       <field name="gtype">
1025         <type name="GType" c:type="GType"/>
1026       </field>
1027       <glib:signal name="all"
1028                    when="first"
1029                    no-recurse="1"
1030                    detailed="1"
1031                    action="1"
1032                    no-hooks="1">
1033         <return-value transfer-ownership="none">
1034           <type name="none"/>
1035         </return-value>
1036       </glib:signal>
1037       <glib:signal name="cleanup" when="cleanup">
1038         <return-value transfer-ownership="none">
1039           <type name="none"/>
1040         </return-value>
1041       </glib:signal>
1042       <glib:signal name="first" when="first">
1043         <return-value transfer-ownership="none">
1044           <type name="none"/>
1045         </return-value>
1046       </glib:signal>
1047       <glib:signal name="sig-with-array-prop" when="last">
1048         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
1049  TpChannel:: group-members-changed-detailed:</doc>
1050         <return-value transfer-ownership="none">
1051           <type name="none"/>
1052         </return-value>
1053         <parameters>
1054           <parameter name="arr" transfer-ownership="none">
1055             <doc xml:whitespace="preserve">numbers</doc>
1056             <array name="GLib.Array">
1057               <type name="guint"/>
1058             </array>
1059           </parameter>
1060         </parameters>
1061       </glib:signal>
1062       <glib:signal name="sig-with-hash-prop" when="last">
1063         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
1064  TpAccount::status-changed</doc>
1065         <return-value transfer-ownership="none">
1066           <type name="none"/>
1067         </return-value>
1068         <parameters>
1069           <parameter name="hash" transfer-ownership="none">
1070             <type name="GLib.HashTable">
1071               <type name="utf8"/>
1072               <type name="GObject.Value"/>
1073             </type>
1074           </parameter>
1075         </parameters>
1076       </glib:signal>
1077       <glib:signal name="sig-with-obj" when="last">
1078         <doc xml:whitespace="preserve">Test transfer none GObject as a param (tests refcounting).
1079 Use with regress_test_obj_emit_sig_with_obj</doc>
1080         <return-value transfer-ownership="none">
1081           <type name="none"/>
1082         </return-value>
1083         <parameters>
1084           <parameter name="obj" transfer-ownership="none">
1085             <doc xml:whitespace="preserve">A newly created RegressTestObj</doc>
1086             <type name="GObject.Object"/>
1087           </parameter>
1088         </parameters>
1089       </glib:signal>
1090       <glib:signal name="sig-with-strv" when="last">
1091         <doc xml:whitespace="preserve">Test GStrv as a param.</doc>
1092         <return-value transfer-ownership="none">
1093           <type name="none"/>
1094         </return-value>
1095         <parameters>
1096           <parameter name="strs" transfer-ownership="none">
1097             <doc xml:whitespace="preserve">strings</doc>
1098             <array>
1099               <type name="utf8"/>
1100             </array>
1101           </parameter>
1102         </parameters>
1103       </glib:signal>
1104       <glib:signal name="test" when="last" no-recurse="1" no-hooks="1">
1105         <return-value transfer-ownership="none">
1106           <type name="none"/>
1107         </return-value>
1108       </glib:signal>
1109       <glib:signal name="test-with-static-scope-arg"
1110                    when="last"
1111                    no-recurse="1"
1112                    no-hooks="1">
1113         <return-value transfer-ownership="none">
1114           <type name="none"/>
1115         </return-value>
1116         <parameters>
1117           <parameter name="object" transfer-ownership="none">
1118             <type name="TestSimpleBoxedA"/>
1119           </parameter>
1120         </parameters>
1121       </glib:signal>
1122     </class>
1123     <record name="TestObjClass"
1124             c:type="RegressTestObjClass"
1125             glib:is-gtype-struct-for="TestObj">
1126       <field name="parent_class">
1127         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1128       </field>
1129       <field name="matrix">
1130         <callback name="matrix">
1131           <return-value transfer-ownership="none">
1132             <type name="gint" c:type="int"/>
1133           </return-value>
1134           <parameters>
1135             <parameter name="obj" transfer-ownership="none">
1136               <type name="TestObj" c:type="RegressTestObj*"/>
1137             </parameter>
1138             <parameter name="somestr" transfer-ownership="none">
1139               <doc xml:whitespace="preserve">Meaningless string</doc>
1140               <type name="utf8" c:type="char*"/>
1141             </parameter>
1142           </parameters>
1143         </callback>
1144       </field>
1145       <field name="allow_none_vfunc">
1146         <callback name="allow_none_vfunc">
1147           <return-value transfer-ownership="none">
1148             <type name="none" c:type="void"/>
1149           </return-value>
1150           <parameters>
1151             <parameter name="obj" transfer-ownership="none">
1152               <type name="TestObj" c:type="RegressTestObj*"/>
1153             </parameter>
1154             <parameter name="two" transfer-ownership="none" allow-none="1">
1155               <doc xml:whitespace="preserve">Another object</doc>
1156               <type name="TestObj" c:type="RegressTestObj*"/>
1157             </parameter>
1158           </parameters>
1159         </callback>
1160       </field>
1161       <field name="test_signal">
1162         <type name="guint" c:type="guint"/>
1163       </field>
1164       <field name="test_signal_with_static_scope_arg">
1165         <type name="guint" c:type="guint"/>
1166       </field>
1167       <field name="_regress_reserved1" introspectable="0">
1168         <callback name="_regress_reserved1">
1169           <return-value transfer-ownership="none">
1170             <type name="none" c:type="void"/>
1171           </return-value>
1172         </callback>
1173       </field>
1174       <field name="_regress_reserved2" introspectable="0">
1175         <callback name="_regress_reserved2">
1176           <return-value transfer-ownership="none">
1177             <type name="none" c:type="void"/>
1178           </return-value>
1179         </callback>
1180       </field>
1181     </record>
1182     <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
1183       <member name="public_enum_before"
1184               value="1"
1185               c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE"/>
1186       <member name="public_enum_after"
1187               value="4"
1188               c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER"/>
1189     </bitfield>
1190     <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
1191       <field name="this_is_public_before" writable="1">
1192         <type name="gint" c:type="gint"/>
1193       </field>
1194       <field name="this_is_private" readable="0" private="1">
1195         <type name="gint" c:type="gint"/>
1196       </field>
1197       <field name="this_is_public_after" writable="1">
1198         <type name="gint" c:type="gint"/>
1199       </field>
1200     </record>
1201     <record name="TestSimpleBoxedA"
1202             c:type="RegressTestSimpleBoxedA"
1203             glib:type-name="RegressTestSimpleBoxedA"
1204             glib:get-type="regress_test_simple_boxed_a_get_gtype"
1205             c:symbol-prefix="test_simple_boxed_a">
1206       <field name="some_int" writable="1">
1207         <type name="gint" c:type="gint"/>
1208       </field>
1209       <field name="some_int8" writable="1">
1210         <type name="gint8" c:type="gint8"/>
1211       </field>
1212       <field name="some_double" writable="1">
1213         <type name="gdouble" c:type="gdouble"/>
1214       </field>
1215       <field name="some_enum" writable="1">
1216         <type name="TestEnum" c:type="RegressTestEnum"/>
1217       </field>
1218       <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
1219         <return-value transfer-ownership="full">
1220           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1221         </return-value>
1222       </method>
1223       <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
1224         <return-value transfer-ownership="none">
1225           <type name="gboolean" c:type="gboolean"/>
1226         </return-value>
1227         <parameters>
1228           <parameter name="other_a" transfer-ownership="none">
1229             <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1230           </parameter>
1231         </parameters>
1232       </method>
1233       <function name="const_return"
1234                 c:identifier="regress_test_simple_boxed_a_const_return">
1235         <return-value transfer-ownership="none">
1236           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
1237         </return-value>
1238       </function>
1239     </record>
1240     <record name="TestSimpleBoxedB"
1241             c:type="RegressTestSimpleBoxedB"
1242             glib:type-name="RegressTestSimpleBoxedB"
1243             glib:get-type="regress_test_simple_boxed_b_get_type"
1244             c:symbol-prefix="test_simple_boxed_b">
1245       <field name="some_int8" writable="1">
1246         <type name="gint8" c:type="gint8"/>
1247       </field>
1248       <field name="nested_a" writable="1">
1249         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
1250       </field>
1251       <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
1252         <return-value transfer-ownership="full">
1253           <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
1254         </return-value>
1255       </method>
1256     </record>
1257     <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
1258       <return-value transfer-ownership="none">
1259         <type name="none" c:type="void"/>
1260       </return-value>
1261     </callback>
1262     <record name="TestStructA" c:type="RegressTestStructA">
1263       <field name="some_int" writable="1">
1264         <type name="gint" c:type="gint"/>
1265       </field>
1266       <field name="some_int8" writable="1">
1267         <type name="gint8" c:type="gint8"/>
1268       </field>
1269       <field name="some_double" writable="1">
1270         <type name="gdouble" c:type="gdouble"/>
1271       </field>
1272       <field name="some_enum" writable="1">
1273         <type name="TestEnum" c:type="RegressTestEnum"/>
1274       </field>
1275       <method name="clone" c:identifier="regress_test_struct_a_clone">
1276         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructA</doc>
1277         <return-value transfer-ownership="none">
1278           <type name="none" c:type="void"/>
1279         </return-value>
1280         <parameters>
1281           <parameter name="a_out"
1282                      direction="out"
1283                      caller-allocates="1"
1284                      transfer-ownership="none">
1285             <doc xml:whitespace="preserve">the cloned structure</doc>
1286             <type name="TestStructA" c:type="RegressTestStructA*"/>
1287           </parameter>
1288         </parameters>
1289       </method>
1290     </record>
1291     <record name="TestStructB" c:type="RegressTestStructB">
1292       <field name="some_int8" writable="1">
1293         <type name="gint8" c:type="gint8"/>
1294       </field>
1295       <field name="nested_a" writable="1">
1296         <type name="TestStructA" c:type="RegressTestStructA"/>
1297       </field>
1298       <method name="clone" c:identifier="regress_test_struct_b_clone">
1299         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructB</doc>
1300         <return-value transfer-ownership="none">
1301           <type name="none" c:type="void"/>
1302         </return-value>
1303         <parameters>
1304           <parameter name="b_out"
1305                      direction="out"
1306                      caller-allocates="1"
1307                      transfer-ownership="none">
1308             <doc xml:whitespace="preserve">the cloned structure</doc>
1309             <type name="TestStructB" c:type="RegressTestStructB*"/>
1310           </parameter>
1311         </parameters>
1312       </method>
1313     </record>
1314     <record name="TestStructC" c:type="RegressTestStructC">
1315       <field name="another_int" writable="1">
1316         <type name="gint" c:type="gint"/>
1317       </field>
1318       <field name="obj" writable="1">
1319         <type name="GObject.Object" c:type="GObject*"/>
1320       </field>
1321     </record>
1322     <record name="TestStructD" c:type="RegressTestStructD">
1323       <field name="array1" writable="1">
1324         <array c:type="RegressTestStructA**">
1325           <type name="TestStructA" c:type="RegressTestStructA*"/>
1326         </array>
1327       </field>
1328       <field name="array2" writable="1">
1329         <array c:type="gpointer*">
1330           <type name="TestObj"/>
1331         </array>
1332       </field>
1333       <field name="field" writable="1">
1334         <type name="TestObj"/>
1335       </field>
1336       <field name="list" writable="1">
1337         <type name="GLib.List" c:type="GList*">
1338           <type name="TestObj"/>
1339         </type>
1340       </field>
1341       <field name="garray" writable="1">
1342         <array name="GLib.PtrArray" c:type="GPtrArray*">
1343           <type name="TestObj"/>
1344         </array>
1345       </field>
1346     </record>
1347     <record name="TestStructE" c:type="RegressTestStructE">
1348       <field name="some_type" writable="1">
1349         <type name="GType" c:type="GType"/>
1350       </field>
1351       <field name="some_union" writable="1">
1352         <array zero-terminated="0" fixed-size="2">
1353           <type name="TestStructE__some_union__union"/>
1354         </array>
1355       </field>
1356     </record>
1357     <union name="TestStructE__some_union__union">
1358       <field name="v_int" writable="1">
1359         <type name="gint" c:type="gint"/>
1360       </field>
1361       <field name="v_uint" writable="1">
1362         <type name="guint" c:type="guint"/>
1363       </field>
1364       <field name="v_long" writable="1">
1365         <type name="glong" c:type="glong"/>
1366       </field>
1367       <field name="v_ulong" writable="1">
1368         <type name="gulong" c:type="gulong"/>
1369       </field>
1370       <field name="v_int64" writable="1">
1371         <type name="gint64" c:type="gint64"/>
1372       </field>
1373       <field name="v_uint64" writable="1">
1374         <type name="guint64" c:type="guint64"/>
1375       </field>
1376       <field name="v_float" writable="1">
1377         <type name="gfloat" c:type="gfloat"/>
1378       </field>
1379       <field name="v_double" writable="1">
1380         <type name="gdouble" c:type="gdouble"/>
1381       </field>
1382       <field name="v_pointer" writable="1">
1383         <type name="gpointer" c:type="gpointer"/>
1384       </field>
1385     </union>
1386     <record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
1387       <field name="just_int" writable="1">
1388         <type name="gint" c:type="gint"/>
1389       </field>
1390       <field name="array" writable="1">
1391         <array zero-terminated="0" c:type="gint" fixed-size="10">
1392           <type name="gint" c:type="gint"/>
1393         </array>
1394       </field>
1395       <method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
1396         <return-value transfer-ownership="none">
1397           <type name="none" c:type="void"/>
1398         </return-value>
1399       </method>
1400     </record>
1401     <class name="TestSubObj"
1402            c:symbol-prefix="test_sub_obj"
1403            c:type="RegressTestSubObj"
1404            parent="TestObj"
1405            glib:type-name="RegressTestSubObj"
1406            glib:get-type="regress_test_sub_obj_get_type"
1407            glib:type-struct="TestSubObjClass">
1408       <constructor name="new" c:identifier="regress_test_sub_obj_new">
1409         <return-value transfer-ownership="full">
1410           <type name="TestObj" c:type="RegressTestObj*"/>
1411         </return-value>
1412       </constructor>
1413       <method name="instance_method"
1414               c:identifier="regress_test_sub_obj_instance_method">
1415         <return-value transfer-ownership="none">
1416           <type name="gint" c:type="int"/>
1417         </return-value>
1418       </method>
1419       <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
1420         <return-value transfer-ownership="none">
1421           <type name="none" c:type="void"/>
1422         </return-value>
1423       </method>
1424       <field name="parent_instance">
1425         <type name="TestObj" c:type="RegressTestObj"/>
1426       </field>
1427     </class>
1428     <record name="TestSubObjClass"
1429             c:type="RegressTestSubObjClass"
1430             glib:is-gtype-struct-for="TestSubObj">
1431       <field name="parent_class">
1432         <type name="TestObjClass" c:type="RegressTestObjClass"/>
1433       </field>
1434     </record>
1435     <class name="TestWi8021x"
1436            c:symbol-prefix="test_wi_802_1x"
1437            c:type="RegressTestWi8021x"
1438            parent="GObject.Object"
1439            glib:type-name="RegressTestWi8021x"
1440            glib:get-type="regress_test_wi_802_1x_get_type"
1441            glib:type-struct="TestWi8021xClass">
1442       <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
1443         <return-value transfer-ownership="full">
1444           <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
1445         </return-value>
1446       </constructor>
1447       <function name="static_method"
1448                 c:identifier="regress_test_wi_802_1x_static_method">
1449         <return-value transfer-ownership="none">
1450           <type name="gint" c:type="int"/>
1451         </return-value>
1452         <parameters>
1453           <parameter name="x" transfer-ownership="none">
1454             <type name="gint" c:type="int"/>
1455           </parameter>
1456         </parameters>
1457       </function>
1458       <method name="get_testbool"
1459               c:identifier="regress_test_wi_802_1x_get_testbool">
1460         <return-value transfer-ownership="none">
1461           <type name="gboolean" c:type="gboolean"/>
1462         </return-value>
1463       </method>
1464       <method name="set_testbool"
1465               c:identifier="regress_test_wi_802_1x_set_testbool">
1466         <return-value transfer-ownership="none">
1467           <type name="none" c:type="void"/>
1468         </return-value>
1469         <parameters>
1470           <parameter name="v" transfer-ownership="none">
1471             <type name="gboolean" c:type="gboolean"/>
1472           </parameter>
1473         </parameters>
1474       </method>
1475       <property name="testbool" writable="1" transfer-ownership="none">
1476         <type name="gboolean"/>
1477       </property>
1478       <field name="parent_instance">
1479         <type name="GObject.Object" c:type="GObject"/>
1480       </field>
1481       <field name="testbool">
1482         <type name="gboolean" c:type="gboolean"/>
1483       </field>
1484     </class>
1485     <record name="TestWi8021xClass"
1486             c:type="RegressTestWi8021xClass"
1487             glib:is-gtype-struct-for="TestWi8021x">
1488       <field name="parent_class">
1489         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1490       </field>
1491     </record>
1492     <constant name="UTF8_CONSTANT"
1493               value="const â™¥ utf8"
1494               c:type="REGRESS_UTF8_CONSTANT">
1495       <type name="utf8" c:type="gchar*"/>
1496     </constant>
1497     <function name="aliased_caller_alloc"
1498               c:identifier="regress_aliased_caller_alloc">
1499       <return-value transfer-ownership="none">
1500         <type name="none" c:type="void"/>
1501       </return-value>
1502       <parameters>
1503         <parameter name="boxed"
1504                    direction="out"
1505                    caller-allocates="1"
1506                    transfer-ownership="none">
1507           <type name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed*"/>
1508         </parameter>
1509       </parameters>
1510     </function>
1511     <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
1512       <return-value transfer-ownership="none">
1513         <type name="none" c:type="void"/>
1514       </return-value>
1515       <parameters>
1516         <parameter name="obj" transfer-ownership="none" allow-none="1">
1517           <doc xml:whitespace="preserve">A #RegressTestObj</doc>
1518           <type name="TestObj" c:type="RegressTestObj*"/>
1519         </parameter>
1520       </parameters>
1521     </function>
1522     <function name="global_get_flags_out"
1523               c:identifier="regress_global_get_flags_out">
1524       <return-value transfer-ownership="none">
1525         <type name="none" c:type="void"/>
1526       </return-value>
1527       <parameters>
1528         <parameter name="v"
1529                    direction="out"
1530                    caller-allocates="0"
1531                    transfer-ownership="full">
1532           <doc xml:whitespace="preserve">A flags value</doc>
1533           <type name="TestFlags" c:type="RegressTestFlags*"/>
1534         </parameter>
1535       </parameters>
1536     </function>
1537     <function name="has_parameter_named_attrs"
1538               c:identifier="regress_has_parameter_named_attrs">
1539       <doc xml:whitespace="preserve">This test case mirrors GnomeKeyringPasswordSchema from
1540 libgnome-keyring.</doc>
1541       <return-value transfer-ownership="none">
1542         <type name="none" c:type="void"/>
1543       </return-value>
1544       <parameters>
1545         <parameter name="foo" transfer-ownership="none">
1546           <doc xml:whitespace="preserve">some int</doc>
1547           <type name="gint" c:type="int"/>
1548         </parameter>
1549         <parameter name="attributes" transfer-ownership="none">
1550           <doc xml:whitespace="preserve">list of attributes</doc>
1551           <array zero-terminated="0" c:type="gpointer" fixed-size="32">
1552             <type name="guint32" c:type="gpointer"/>
1553           </array>
1554         </parameter>
1555       </parameters>
1556     </function>
1557     <function name="introspectable_via_alias"
1558               c:identifier="regress_introspectable_via_alias">
1559       <return-value transfer-ownership="none">
1560         <type name="none" c:type="void"/>
1561       </return-value>
1562       <parameters>
1563         <parameter name="data" transfer-ownership="none">
1564           <type name="PtrArrayAlias" c:type="RegressPtrArrayAlias*"/>
1565         </parameter>
1566       </parameters>
1567     </function>
1568     <function name="not_introspectable_via_alias"
1569               c:identifier="regress_not_introspectable_via_alias"
1570               introspectable="0">
1571       <return-value transfer-ownership="none">
1572         <type name="none" c:type="void"/>
1573       </return-value>
1574       <parameters>
1575         <parameter name="ok" transfer-ownership="none">
1576           <type name="VaListAlias" c:type="RegressVaListAlias"/>
1577         </parameter>
1578       </parameters>
1579     </function>
1580     <function name="random_function_with_skipped_structure"
1581               c:identifier="regress_random_function_with_skipped_structure"
1582               introspectable="0">
1583       <return-value transfer-ownership="none">
1584         <type name="none" c:type="void"/>
1585       </return-value>
1586       <parameters>
1587         <parameter name="x" transfer-ownership="none">
1588           <type name="gint" c:type="int"/>
1589         </parameter>
1590         <parameter name="foo" transfer-ownership="none">
1591           <type name="SkippedStructure" c:type="RegressSkippedStructure*"/>
1592         </parameter>
1593         <parameter name="v" transfer-ownership="none">
1594           <type name="gdouble" c:type="double"/>
1595         </parameter>
1596       </parameters>
1597     </function>
1598     <function name="set_abort_on_error"
1599               c:identifier="regress_set_abort_on_error">
1600       <return-value transfer-ownership="none">
1601         <type name="none" c:type="void"/>
1602       </return-value>
1603       <parameters>
1604         <parameter name="abort_on_error" transfer-ownership="none">
1605           <type name="gboolean" c:type="gboolean"/>
1606         </parameter>
1607       </parameters>
1608     </function>
1609     <function name="test_array_callback"
1610               c:identifier="regress_test_array_callback">
1611       <return-value transfer-ownership="none">
1612         <type name="gint" c:type="int"/>
1613       </return-value>
1614       <parameters>
1615         <parameter name="callback" transfer-ownership="none" scope="call">
1616           <type name="TestCallbackArray" c:type="RegressTestCallbackArray"/>
1617         </parameter>
1618       </parameters>
1619     </function>
1620     <function name="test_array_fixed_out_objects"
1621               c:identifier="regress_test_array_fixed_out_objects">
1622       <return-value transfer-ownership="none">
1623         <type name="none" c:type="void"/>
1624       </return-value>
1625       <parameters>
1626         <parameter name="objs"
1627                    direction="out"
1628                    caller-allocates="0"
1629                    transfer-ownership="full">
1630           <doc xml:whitespace="preserve">An array of #RegressTestObj</doc>
1631           <array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
1632             <type name="TestObj" c:type="RegressTestObj**"/>
1633           </array>
1634         </parameter>
1635       </parameters>
1636     </function>
1637     <function name="test_array_fixed_size_int_in"
1638               c:identifier="regress_test_array_fixed_size_int_in">
1639       <return-value transfer-ownership="none">
1640         <doc xml:whitespace="preserve">the sum of the items in @ints</doc>
1641         <type name="gint" c:type="int"/>
1642       </return-value>
1643       <parameters>
1644         <parameter name="ints" transfer-ownership="none">
1645           <doc xml:whitespace="preserve">a list of 5 integers</doc>
1646           <array zero-terminated="0" c:type="int*" fixed-size="5">
1647             <type name="gint" c:type="int"/>
1648           </array>
1649         </parameter>
1650       </parameters>
1651     </function>
1652     <function name="test_array_fixed_size_int_out"
1653               c:identifier="regress_test_array_fixed_size_int_out">
1654       <return-value transfer-ownership="none">
1655         <type name="none" c:type="void"/>
1656       </return-value>
1657       <parameters>
1658         <parameter name="ints"
1659                    direction="out"
1660                    caller-allocates="0"
1661                    transfer-ownership="full">
1662           <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</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_return"
1670               c:identifier="regress_test_array_fixed_size_int_return">
1671       <return-value transfer-ownership="full">
1672         <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
1673         <array zero-terminated="0" c:type="int*" fixed-size="5">
1674           <type name="gint" c:type="int"/>
1675         </array>
1676       </return-value>
1677     </function>
1678     <function name="test_array_gint16_in"
1679               c:identifier="regress_test_array_gint16_in">
1680       <return-value transfer-ownership="none">
1681         <type name="gint" c:type="int"/>
1682       </return-value>
1683       <parameters>
1684         <parameter name="n_ints" transfer-ownership="none">
1685           <type name="gint" c:type="int"/>
1686         </parameter>
1687         <parameter name="ints" transfer-ownership="none">
1688           <doc xml:whitespace="preserve">List of ints</doc>
1689           <array length="0" zero-terminated="0" c:type="gint16*">
1690             <type name="gint16" c:type="gint16"/>
1691           </array>
1692         </parameter>
1693       </parameters>
1694     </function>
1695     <function name="test_array_gint32_in"
1696               c:identifier="regress_test_array_gint32_in">
1697       <return-value transfer-ownership="none">
1698         <type name="gint32" c:type="gint32"/>
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="gint32*">
1707             <type name="gint32" c:type="gint32"/>
1708           </array>
1709         </parameter>
1710       </parameters>
1711     </function>
1712     <function name="test_array_gint64_in"
1713               c:identifier="regress_test_array_gint64_in">
1714       <return-value transfer-ownership="none">
1715         <type name="gint64" c:type="gint64"/>
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="gint64*">
1724             <type name="gint64" c:type="gint64"/>
1725           </array>
1726         </parameter>
1727       </parameters>
1728     </function>
1729     <function name="test_array_gint8_in"
1730               c:identifier="regress_test_array_gint8_in">
1731       <return-value transfer-ownership="none">
1732         <type name="gint" c:type="int"/>
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="gint8*">
1741             <type name="gint8" c:type="gint8"/>
1742           </array>
1743         </parameter>
1744       </parameters>
1745     </function>
1746     <function name="test_array_gtype_in"
1747               c:identifier="regress_test_array_gtype_in">
1748       <return-value transfer-ownership="full">
1749         <doc xml:whitespace="preserve">string representation of provided types</doc>
1750         <type name="utf8" c:type="char*"/>
1751       </return-value>
1752       <parameters>
1753         <parameter name="n_types" transfer-ownership="none">
1754           <type name="gint" c:type="int"/>
1755         </parameter>
1756         <parameter name="types" transfer-ownership="none">
1757           <doc xml:whitespace="preserve">List of types</doc>
1758           <array length="0" zero-terminated="0" c:type="GType*">
1759             <type name="GType" c:type="GType"/>
1760           </array>
1761         </parameter>
1762       </parameters>
1763     </function>
1764     <function name="test_array_int_full_out"
1765               c:identifier="regress_test_array_int_full_out">
1766       <return-value transfer-ownership="full">
1767         <doc xml:whitespace="preserve">a new array of integers.</doc>
1768         <array length="0" zero-terminated="0" c:type="int*">
1769           <type name="gint" c:type="int"/>
1770         </array>
1771       </return-value>
1772       <parameters>
1773         <parameter name="len"
1774                    direction="out"
1775                    caller-allocates="0"
1776                    transfer-ownership="full">
1777           <doc xml:whitespace="preserve">length of the returned array.</doc>
1778           <type name="gint" c:type="int*"/>
1779         </parameter>
1780       </parameters>
1781     </function>
1782     <function name="test_array_int_in"
1783               c:identifier="regress_test_array_int_in">
1784       <return-value transfer-ownership="none">
1785         <type name="gint" c:type="int"/>
1786       </return-value>
1787       <parameters>
1788         <parameter name="n_ints" transfer-ownership="none">
1789           <type name="gint" c:type="int"/>
1790         </parameter>
1791         <parameter name="ints" transfer-ownership="none">
1792           <doc xml:whitespace="preserve">List of ints</doc>
1793           <array length="0" zero-terminated="0" c:type="int*">
1794             <type name="gint" c:type="int"/>
1795           </array>
1796         </parameter>
1797       </parameters>
1798     </function>
1799     <function name="test_array_int_inout"
1800               c:identifier="regress_test_array_int_inout">
1801       <return-value transfer-ownership="none">
1802         <type name="none" c:type="void"/>
1803       </return-value>
1804       <parameters>
1805         <parameter name="n_ints"
1806                    direction="inout"
1807                    caller-allocates="0"
1808                    transfer-ownership="full">
1809           <doc xml:whitespace="preserve">the length of @ints</doc>
1810           <type name="gint" c:type="int*"/>
1811         </parameter>
1812         <parameter name="ints"
1813                    direction="inout"
1814                    caller-allocates="0"
1815                    transfer-ownership="full">
1816           <doc xml:whitespace="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
1817           <array length="0" zero-terminated="0" c:type="int**">
1818             <type name="gint" c:type="int*"/>
1819           </array>
1820         </parameter>
1821       </parameters>
1822     </function>
1823     <function name="test_array_int_none_out"
1824               c:identifier="regress_test_array_int_none_out">
1825       <return-value transfer-ownership="none">
1826         <doc xml:whitespace="preserve">a static array of integers.</doc>
1827         <array length="0" zero-terminated="0" c:type="int*">
1828           <type name="gint" c:type="int"/>
1829         </array>
1830       </return-value>
1831       <parameters>
1832         <parameter name="len"
1833                    direction="out"
1834                    caller-allocates="0"
1835                    transfer-ownership="full">
1836           <doc xml:whitespace="preserve">length of the returned array.</doc>
1837           <type name="gint" c:type="int*"/>
1838         </parameter>
1839       </parameters>
1840     </function>
1841     <function name="test_array_int_null_in"
1842               c:identifier="regress_test_array_int_null_in">
1843       <return-value transfer-ownership="none">
1844         <type name="none" c:type="void"/>
1845       </return-value>
1846       <parameters>
1847         <parameter name="arr" transfer-ownership="none" allow-none="1">
1848           <array length="1" zero-terminated="0" c:type="int*">
1849             <type name="gint" c:type="int"/>
1850           </array>
1851         </parameter>
1852         <parameter name="len" transfer-ownership="none">
1853           <doc xml:whitespace="preserve">length</doc>
1854           <type name="gint" c:type="int"/>
1855         </parameter>
1856       </parameters>
1857     </function>
1858     <function name="test_array_int_null_out"
1859               c:identifier="regress_test_array_int_null_out">
1860       <return-value transfer-ownership="none">
1861         <type name="none" c:type="void"/>
1862       </return-value>
1863       <parameters>
1864         <parameter name="arr"
1865                    direction="out"
1866                    caller-allocates="0"
1867                    transfer-ownership="full"
1868                    allow-none="1">
1869           <array length="1" zero-terminated="0" c:type="int**">
1870             <type name="gint" c:type="int*"/>
1871           </array>
1872         </parameter>
1873         <parameter name="len"
1874                    direction="out"
1875                    caller-allocates="0"
1876                    transfer-ownership="full">
1877           <doc xml:whitespace="preserve">length</doc>
1878           <type name="gint" c:type="int*"/>
1879         </parameter>
1880       </parameters>
1881     </function>
1882     <function name="test_array_int_out"
1883               c:identifier="regress_test_array_int_out">
1884       <return-value transfer-ownership="none">
1885         <type name="none" c:type="void"/>
1886       </return-value>
1887       <parameters>
1888         <parameter name="n_ints"
1889                    direction="out"
1890                    caller-allocates="0"
1891                    transfer-ownership="full">
1892           <doc xml:whitespace="preserve">the length of @ints</doc>
1893           <type name="gint" c:type="int*"/>
1894         </parameter>
1895         <parameter name="ints"
1896                    direction="out"
1897                    caller-allocates="0"
1898                    transfer-ownership="full">
1899           <doc xml:whitespace="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
1900           <array length="0" zero-terminated="0" c:type="int**">
1901             <type name="gint" c:type="int*"/>
1902           </array>
1903         </parameter>
1904       </parameters>
1905     </function>
1906     <function name="test_async_ready_callback"
1907               c:identifier="regress_test_async_ready_callback">
1908       <return-value transfer-ownership="none">
1909         <type name="none" c:type="void"/>
1910       </return-value>
1911       <parameters>
1912         <parameter name="callback"
1913                    transfer-ownership="none"
1914                    allow-none="1"
1915                    scope="async">
1916           <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1917         </parameter>
1918       </parameters>
1919     </function>
1920     <function name="test_boolean" c:identifier="regress_test_boolean">
1921       <return-value transfer-ownership="none">
1922         <type name="gboolean" c:type="gboolean"/>
1923       </return-value>
1924       <parameters>
1925         <parameter name="in" transfer-ownership="none">
1926           <type name="gboolean" c:type="gboolean"/>
1927         </parameter>
1928       </parameters>
1929     </function>
1930     <function name="test_boolean_false"
1931               c:identifier="regress_test_boolean_false">
1932       <return-value transfer-ownership="none">
1933         <type name="gboolean" c:type="gboolean"/>
1934       </return-value>
1935       <parameters>
1936         <parameter name="in" transfer-ownership="none">
1937           <type name="gboolean" c:type="gboolean"/>
1938         </parameter>
1939       </parameters>
1940     </function>
1941     <function name="test_boolean_true"
1942               c:identifier="regress_test_boolean_true">
1943       <return-value transfer-ownership="none">
1944         <type name="gboolean" c:type="gboolean"/>
1945       </return-value>
1946       <parameters>
1947         <parameter name="in" transfer-ownership="none">
1948           <type name="gboolean" c:type="gboolean"/>
1949         </parameter>
1950       </parameters>
1951     </function>
1952     <function name="test_cairo_context_full_return"
1953               c:identifier="regress_test_cairo_context_full_return">
1954       <return-value transfer-ownership="full">
1955         <type name="cairo.Context" c:type="cairo_t*"/>
1956       </return-value>
1957     </function>
1958     <function name="test_cairo_context_none_in"
1959               c:identifier="regress_test_cairo_context_none_in">
1960       <return-value transfer-ownership="none">
1961         <type name="none" c:type="void"/>
1962       </return-value>
1963       <parameters>
1964         <parameter name="context" transfer-ownership="none">
1965           <type name="cairo.Context" c:type="cairo_t*"/>
1966         </parameter>
1967       </parameters>
1968     </function>
1969     <function name="test_cairo_surface_full_out"
1970               c:identifier="regress_test_cairo_surface_full_out">
1971       <return-value transfer-ownership="none">
1972         <type name="none" c:type="void"/>
1973       </return-value>
1974       <parameters>
1975         <parameter name="surface"
1976                    direction="out"
1977                    caller-allocates="0"
1978                    transfer-ownership="full">
1979           <type name="cairo.Surface" c:type="cairo_surface_t**"/>
1980         </parameter>
1981       </parameters>
1982     </function>
1983     <function name="test_cairo_surface_full_return"
1984               c:identifier="regress_test_cairo_surface_full_return">
1985       <return-value transfer-ownership="full">
1986         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1987       </return-value>
1988     </function>
1989     <function name="test_cairo_surface_none_in"
1990               c:identifier="regress_test_cairo_surface_none_in">
1991       <return-value transfer-ownership="none">
1992         <type name="none" c:type="void"/>
1993       </return-value>
1994       <parameters>
1995         <parameter name="surface" transfer-ownership="none">
1996           <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1997         </parameter>
1998       </parameters>
1999     </function>
2000     <function name="test_cairo_surface_none_return"
2001               c:identifier="regress_test_cairo_surface_none_return">
2002       <return-value transfer-ownership="none">
2003         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
2004       </return-value>
2005     </function>
2006     <function name="test_callback" c:identifier="regress_test_callback">
2007       <return-value transfer-ownership="none">
2008         <type name="gint" c:type="int"/>
2009       </return-value>
2010       <parameters>
2011         <parameter name="callback"
2012                    transfer-ownership="none"
2013                    allow-none="1"
2014                    scope="call">
2015           <type name="TestCallback" c:type="RegressTestCallback"/>
2016         </parameter>
2017       </parameters>
2018     </function>
2019     <function name="test_callback_async"
2020               c:identifier="regress_test_callback_async">
2021       <return-value transfer-ownership="none">
2022         <type name="none" c:type="void"/>
2023       </return-value>
2024       <parameters>
2025         <parameter name="callback"
2026                    transfer-ownership="none"
2027                    scope="async"
2028                    closure="1">
2029           <type name="TestCallbackUserData"
2030                 c:type="RegressTestCallbackUserData"/>
2031         </parameter>
2032         <parameter name="user_data" transfer-ownership="none">
2033           <type name="gpointer" c:type="gpointer"/>
2034         </parameter>
2035       </parameters>
2036     </function>
2037     <function name="test_callback_destroy_notify"
2038               c:identifier="regress_test_callback_destroy_notify">
2039       <doc xml:whitespace="preserve">Notified - callback persists until a DestroyNotify delegate
2040 is invoked.</doc>
2041       <return-value transfer-ownership="none">
2042         <type name="gint" c:type="int"/>
2043       </return-value>
2044       <parameters>
2045         <parameter name="callback"
2046                    transfer-ownership="none"
2047                    scope="notified"
2048                    closure="1"
2049                    destroy="2">
2050           <type name="TestCallbackUserData"
2051                 c:type="RegressTestCallbackUserData"/>
2052         </parameter>
2053         <parameter name="user_data" transfer-ownership="none">
2054           <type name="gpointer" c:type="gpointer"/>
2055         </parameter>
2056         <parameter name="notify" transfer-ownership="none" scope="async">
2057           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2058         </parameter>
2059       </parameters>
2060     </function>
2061     <function name="test_callback_thaw_async"
2062               c:identifier="regress_test_callback_thaw_async">
2063       <return-value transfer-ownership="none">
2064         <type name="gint" c:type="int"/>
2065       </return-value>
2066     </function>
2067     <function name="test_callback_thaw_notifications"
2068               c:identifier="regress_test_callback_thaw_notifications">
2069       <doc xml:whitespace="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
2070 adding up their return values, and removes them, invoking the
2071 corresponding destroy notfications.</doc>
2072       <return-value transfer-ownership="none">
2073         <doc xml:whitespace="preserve">Sum of the return values of the invoked callbacks.</doc>
2074         <type name="gint" c:type="int"/>
2075       </return-value>
2076     </function>
2077     <function name="test_callback_user_data"
2078               c:identifier="regress_test_callback_user_data">
2079       <doc xml:whitespace="preserve">Call - callback parameter persists for the duration of the method
2080 call and can be released on return.</doc>
2081       <return-value transfer-ownership="none">
2082         <type name="gint" c:type="int"/>
2083       </return-value>
2084       <parameters>
2085         <parameter name="callback"
2086                    transfer-ownership="none"
2087                    scope="call"
2088                    closure="1">
2089           <type name="TestCallbackUserData"
2090                 c:type="RegressTestCallbackUserData"/>
2091         </parameter>
2092         <parameter name="user_data" transfer-ownership="none">
2093           <type name="gpointer" c:type="gpointer"/>
2094         </parameter>
2095       </parameters>
2096     </function>
2097     <function name="test_closure" c:identifier="regress_test_closure">
2098       <return-value transfer-ownership="none">
2099         <type name="gint" c:type="int"/>
2100       </return-value>
2101       <parameters>
2102         <parameter name="closure" transfer-ownership="none">
2103           <type name="GObject.Closure" c:type="GClosure*"/>
2104         </parameter>
2105       </parameters>
2106     </function>
2107     <function name="test_closure_one_arg"
2108               c:identifier="regress_test_closure_one_arg">
2109       <return-value transfer-ownership="none">
2110         <type name="gint" c:type="int"/>
2111       </return-value>
2112       <parameters>
2113         <parameter name="closure" transfer-ownership="none">
2114           <type name="GObject.Closure" c:type="GClosure*"/>
2115         </parameter>
2116         <parameter name="arg" transfer-ownership="none">
2117           <type name="gint" c:type="int"/>
2118         </parameter>
2119       </parameters>
2120     </function>
2121     <function name="test_closure_variant"
2122               c:identifier="regress_test_closure_variant">
2123       <return-value transfer-ownership="full">
2124         <doc xml:whitespace="preserve">the return value of @closure</doc>
2125         <type name="GLib.Variant" c:type="GVariant*"/>
2126       </return-value>
2127       <parameters>
2128         <parameter name="closure" transfer-ownership="none">
2129           <doc xml:whitespace="preserve">GClosure which takes one GVariant and returns a GVariant</doc>
2130           <type name="GObject.Closure" c:type="GClosure*"/>
2131         </parameter>
2132         <parameter name="arg" transfer-ownership="none" allow-none="1">
2133           <doc xml:whitespace="preserve">a GVariant passed as argument to @closure</doc>
2134           <type name="GLib.Variant" c:type="GVariant*"/>
2135         </parameter>
2136       </parameters>
2137     </function>
2138     <function name="test_date_in_gvalue"
2139               c:identifier="regress_test_date_in_gvalue">
2140       <return-value transfer-ownership="full">
2141         <type name="GObject.Value" c:type="GValue*"/>
2142       </return-value>
2143     </function>
2144     <function name="test_double" c:identifier="regress_test_double">
2145       <return-value transfer-ownership="none">
2146         <type name="gdouble" c:type="gdouble"/>
2147       </return-value>
2148       <parameters>
2149         <parameter name="in" transfer-ownership="none">
2150           <type name="gdouble" c:type="gdouble"/>
2151         </parameter>
2152       </parameters>
2153     </function>
2154     <function name="test_enum_param"
2155               c:identifier="regress_test_enum_param"
2156               moved-to="TestEnum.param">
2157       <return-value transfer-ownership="none">
2158         <type name="utf8" c:type="gchar*"/>
2159       </return-value>
2160       <parameters>
2161         <parameter name="e" transfer-ownership="none">
2162           <type name="TestEnum" c:type="RegressTestEnum"/>
2163         </parameter>
2164       </parameters>
2165     </function>
2166     <function name="test_filename_return"
2167               c:identifier="regress_test_filename_return">
2168       <return-value transfer-ownership="full">
2169         <doc xml:whitespace="preserve">list of strings</doc>
2170         <type name="GLib.SList" c:type="GSList*">
2171           <type name="filename"/>
2172         </type>
2173       </return-value>
2174     </function>
2175     <function name="test_float" c:identifier="regress_test_float">
2176       <return-value transfer-ownership="none">
2177         <type name="gfloat" c:type="gfloat"/>
2178       </return-value>
2179       <parameters>
2180         <parameter name="in" transfer-ownership="none">
2181           <type name="gfloat" c:type="gfloat"/>
2182         </parameter>
2183       </parameters>
2184     </function>
2185     <function name="test_garray_container_return"
2186               c:identifier="regress_test_garray_container_return">
2187       <return-value transfer-ownership="container">
2188         <array name="GLib.PtrArray" c:type="GPtrArray*">
2189           <type name="utf8"/>
2190         </array>
2191       </return-value>
2192     </function>
2193     <function name="test_garray_full_return"
2194               c:identifier="regress_test_garray_full_return">
2195       <return-value transfer-ownership="full">
2196         <array name="GLib.PtrArray" c:type="GPtrArray*">
2197           <type name="utf8"/>
2198         </array>
2199       </return-value>
2200     </function>
2201     <function name="test_gerror_callback"
2202               c:identifier="regress_test_gerror_callback">
2203       <return-value transfer-ownership="none">
2204         <type name="none" c:type="void"/>
2205       </return-value>
2206       <parameters>
2207         <parameter name="callback" transfer-ownership="none" scope="call">
2208           <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
2209         </parameter>
2210       </parameters>
2211     </function>
2212     <function name="test_ghash_container_return"
2213               c:identifier="regress_test_ghash_container_return">
2214       <return-value transfer-ownership="container">
2215         <type name="GLib.HashTable" c:type="GHashTable*">
2216           <type name="utf8"/>
2217           <type name="utf8"/>
2218         </type>
2219       </return-value>
2220     </function>
2221     <function name="test_ghash_everything_return"
2222               c:identifier="regress_test_ghash_everything_return">
2223       <return-value transfer-ownership="full">
2224         <type name="GLib.HashTable" c:type="GHashTable*">
2225           <type name="utf8"/>
2226           <type name="utf8"/>
2227         </type>
2228       </return-value>
2229     </function>
2230     <function name="test_ghash_gvalue_in"
2231               c:identifier="regress_test_ghash_gvalue_in">
2232       <return-value transfer-ownership="none">
2233         <type name="none" c:type="void"/>
2234       </return-value>
2235       <parameters>
2236         <parameter name="hash" transfer-ownership="none">
2237           <doc xml:whitespace="preserve">the hash table returned by regress_test_ghash_gvalue_return().</doc>
2238           <type name="GLib.HashTable" c:type="GHashTable*">
2239             <type name="utf8"/>
2240             <type name="GObject.Value"/>
2241           </type>
2242         </parameter>
2243       </parameters>
2244     </function>
2245     <function name="test_ghash_gvalue_return"
2246               c:identifier="regress_test_ghash_gvalue_return">
2247       <return-value transfer-ownership="none">
2248         <type name="GLib.HashTable" c:type="GHashTable*">
2249           <type name="utf8"/>
2250           <type name="GObject.Value"/>
2251         </type>
2252       </return-value>
2253     </function>
2254     <function name="test_ghash_nested_everything_return"
2255               c:identifier="regress_test_ghash_nested_everything_return">
2256       <doc xml:whitespace="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
2257       <return-value transfer-ownership="full">
2258         <type name="GLib.HashTable" c:type="GHashTable*">
2259           <type name="utf8"/>
2260           <type name="GLib.HashTable">
2261             <type name="utf8"/>
2262             <type name="utf8"/>
2263           </type>
2264         </type>
2265       </return-value>
2266     </function>
2267     <function name="test_ghash_nested_everything_return2"
2268               c:identifier="regress_test_ghash_nested_everything_return2">
2269       <doc xml:whitespace="preserve">Another way of specifying nested parameterized types: using the
2270 element-type annotation.</doc>
2271       <return-value transfer-ownership="full">
2272         <type name="GLib.HashTable" c:type="GHashTable*">
2273           <type name="utf8"/>
2274           <type name="GLib.HashTable">
2275             <type name="utf8"/>
2276             <type name="utf8"/>
2277           </type>
2278         </type>
2279       </return-value>
2280     </function>
2281     <function name="test_ghash_nothing_in"
2282               c:identifier="regress_test_ghash_nothing_in">
2283       <return-value transfer-ownership="none">
2284         <type name="none" c:type="void"/>
2285       </return-value>
2286       <parameters>
2287         <parameter name="in" transfer-ownership="none">
2288           <type name="GLib.HashTable" c:type="GHashTable*">
2289             <type name="utf8"/>
2290             <type name="utf8"/>
2291           </type>
2292         </parameter>
2293       </parameters>
2294     </function>
2295     <function name="test_ghash_nothing_in2"
2296               c:identifier="regress_test_ghash_nothing_in2">
2297       <return-value transfer-ownership="none">
2298         <type name="none" c:type="void"/>
2299       </return-value>
2300       <parameters>
2301         <parameter name="in" transfer-ownership="none">
2302           <type name="GLib.HashTable" c:type="GHashTable*">
2303             <type name="utf8"/>
2304             <type name="utf8"/>
2305           </type>
2306         </parameter>
2307       </parameters>
2308     </function>
2309     <function name="test_ghash_nothing_return"
2310               c:identifier="regress_test_ghash_nothing_return">
2311       <return-value transfer-ownership="none">
2312         <type name="GLib.HashTable" c:type="GHashTable*">
2313           <type name="utf8"/>
2314           <type name="utf8"/>
2315         </type>
2316       </return-value>
2317     </function>
2318     <function name="test_ghash_nothing_return2"
2319               c:identifier="regress_test_ghash_nothing_return2">
2320       <return-value transfer-ownership="none">
2321         <type name="GLib.HashTable" c:type="GHashTable*">
2322           <type name="utf8"/>
2323           <type name="utf8"/>
2324         </type>
2325       </return-value>
2326     </function>
2327     <function name="test_ghash_null_in"
2328               c:identifier="regress_test_ghash_null_in">
2329       <return-value transfer-ownership="none">
2330         <type name="none" c:type="void"/>
2331       </return-value>
2332       <parameters>
2333         <parameter name="in" transfer-ownership="none" allow-none="1">
2334           <type name="GLib.HashTable" c:type="GHashTable*">
2335             <type name="utf8"/>
2336             <type name="utf8"/>
2337           </type>
2338         </parameter>
2339       </parameters>
2340     </function>
2341     <function name="test_ghash_null_out"
2342               c:identifier="regress_test_ghash_null_out">
2343       <return-value transfer-ownership="none">
2344         <type name="none" c:type="void"/>
2345       </return-value>
2346       <parameters>
2347         <parameter name="out"
2348                    direction="out"
2349                    caller-allocates="0"
2350                    transfer-ownership="full"
2351                    allow-none="1">
2352           <type name="GLib.HashTable" c:type="GHashTable**">
2353             <type name="utf8"/>
2354             <type name="utf8"/>
2355           </type>
2356         </parameter>
2357       </parameters>
2358     </function>
2359     <function name="test_ghash_null_return"
2360               c:identifier="regress_test_ghash_null_return">
2361       <return-value transfer-ownership="none">
2362         <type name="GLib.HashTable" c:type="GHashTable*">
2363           <type name="utf8"/>
2364           <type name="utf8"/>
2365         </type>
2366       </return-value>
2367     </function>
2368     <function name="test_glist_container_return"
2369               c:identifier="regress_test_glist_container_return">
2370       <return-value transfer-ownership="container">
2371         <type name="GLib.List" c:type="GList*">
2372           <type name="utf8"/>
2373         </type>
2374       </return-value>
2375     </function>
2376     <function name="test_glist_everything_return"
2377               c:identifier="regress_test_glist_everything_return">
2378       <return-value transfer-ownership="full">
2379         <type name="GLib.List" c:type="GList*">
2380           <type name="utf8"/>
2381         </type>
2382       </return-value>
2383     </function>
2384     <function name="test_glist_nothing_in"
2385               c:identifier="regress_test_glist_nothing_in">
2386       <return-value transfer-ownership="none">
2387         <type name="none" c:type="void"/>
2388       </return-value>
2389       <parameters>
2390         <parameter name="in" transfer-ownership="none">
2391           <type name="GLib.List" c:type="GList*">
2392             <type name="utf8"/>
2393           </type>
2394         </parameter>
2395       </parameters>
2396     </function>
2397     <function name="test_glist_nothing_in2"
2398               c:identifier="regress_test_glist_nothing_in2">
2399       <return-value transfer-ownership="none">
2400         <type name="none" c:type="void"/>
2401       </return-value>
2402       <parameters>
2403         <parameter name="in" transfer-ownership="none">
2404           <type name="GLib.List" c:type="GList*">
2405             <type name="utf8"/>
2406           </type>
2407         </parameter>
2408       </parameters>
2409     </function>
2410     <function name="test_glist_nothing_return"
2411               c:identifier="regress_test_glist_nothing_return">
2412       <return-value transfer-ownership="none">
2413         <type name="GLib.List" c:type="GList*">
2414           <type name="utf8"/>
2415         </type>
2416       </return-value>
2417     </function>
2418     <function name="test_glist_nothing_return2"
2419               c:identifier="regress_test_glist_nothing_return2">
2420       <return-value transfer-ownership="none">
2421         <type name="GLib.List" c:type="GList*">
2422           <type name="utf8"/>
2423         </type>
2424       </return-value>
2425     </function>
2426     <function name="test_glist_null_in"
2427               c:identifier="regress_test_glist_null_in">
2428       <return-value transfer-ownership="none">
2429         <type name="none" c:type="void"/>
2430       </return-value>
2431       <parameters>
2432         <parameter name="in" transfer-ownership="none" allow-none="1">
2433           <type name="GLib.SList" c:type="GSList*">
2434             <type name="utf8"/>
2435           </type>
2436         </parameter>
2437       </parameters>
2438     </function>
2439     <function name="test_glist_null_out"
2440               c:identifier="regress_test_glist_null_out">
2441       <return-value transfer-ownership="none">
2442         <type name="none" c:type="void"/>
2443       </return-value>
2444       <parameters>
2445         <parameter name="out_list"
2446                    direction="out"
2447                    caller-allocates="0"
2448                    transfer-ownership="full"
2449                    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_gslist_container_return"
2457               c:identifier="regress_test_gslist_container_return">
2458       <return-value transfer-ownership="container">
2459         <type name="GLib.SList" c:type="GSList*">
2460           <type name="utf8"/>
2461         </type>
2462       </return-value>
2463     </function>
2464     <function name="test_gslist_everything_return"
2465               c:identifier="regress_test_gslist_everything_return">
2466       <return-value transfer-ownership="full">
2467         <type name="GLib.SList" c:type="GSList*">
2468           <type name="utf8"/>
2469         </type>
2470       </return-value>
2471     </function>
2472     <function name="test_gslist_nothing_in"
2473               c:identifier="regress_test_gslist_nothing_in">
2474       <return-value transfer-ownership="none">
2475         <type name="none" c:type="void"/>
2476       </return-value>
2477       <parameters>
2478         <parameter name="in" transfer-ownership="none">
2479           <type name="GLib.SList" c:type="GSList*">
2480             <type name="utf8"/>
2481           </type>
2482         </parameter>
2483       </parameters>
2484     </function>
2485     <function name="test_gslist_nothing_in2"
2486               c:identifier="regress_test_gslist_nothing_in2">
2487       <return-value transfer-ownership="none">
2488         <type name="none" c:type="void"/>
2489       </return-value>
2490       <parameters>
2491         <parameter name="in" transfer-ownership="none">
2492           <type name="GLib.SList" c:type="GSList*">
2493             <type name="utf8"/>
2494           </type>
2495         </parameter>
2496       </parameters>
2497     </function>
2498     <function name="test_gslist_nothing_return"
2499               c:identifier="regress_test_gslist_nothing_return">
2500       <return-value transfer-ownership="none">
2501         <type name="GLib.SList" c:type="GSList*">
2502           <type name="utf8"/>
2503         </type>
2504       </return-value>
2505     </function>
2506     <function name="test_gslist_nothing_return2"
2507               c:identifier="regress_test_gslist_nothing_return2">
2508       <return-value transfer-ownership="none">
2509         <type name="GLib.SList" c:type="GSList*">
2510           <type name="utf8"/>
2511         </type>
2512       </return-value>
2513     </function>
2514     <function name="test_gslist_null_in"
2515               c:identifier="regress_test_gslist_null_in">
2516       <return-value transfer-ownership="none">
2517         <type name="none" c:type="void"/>
2518       </return-value>
2519       <parameters>
2520         <parameter name="in" transfer-ownership="none" allow-none="1">
2521           <type name="GLib.SList" c:type="GSList*">
2522             <type name="utf8"/>
2523           </type>
2524         </parameter>
2525       </parameters>
2526     </function>
2527     <function name="test_gslist_null_out"
2528               c:identifier="regress_test_gslist_null_out">
2529       <return-value transfer-ownership="none">
2530         <type name="none" c:type="void"/>
2531       </return-value>
2532       <parameters>
2533         <parameter name="out_list"
2534                    direction="out"
2535                    caller-allocates="0"
2536                    transfer-ownership="full"
2537                    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_gtype" c:identifier="regress_test_gtype">
2545       <return-value transfer-ownership="none">
2546         <type name="GType" c:type="GType"/>
2547       </return-value>
2548       <parameters>
2549         <parameter name="in" transfer-ownership="none">
2550           <type name="GType" c:type="GType"/>
2551         </parameter>
2552       </parameters>
2553     </function>
2554     <function name="test_gvariant_as" c:identifier="regress_test_gvariant_as">
2555       <return-value transfer-ownership="none">
2556         <doc xml:whitespace="preserve">New variant</doc>
2557         <type name="GLib.Variant" c:type="GVariant*"/>
2558       </return-value>
2559     </function>
2560     <function name="test_gvariant_asv"
2561               c:identifier="regress_test_gvariant_asv">
2562       <return-value transfer-ownership="none">
2563         <doc xml:whitespace="preserve">New variant</doc>
2564         <type name="GLib.Variant" c:type="GVariant*"/>
2565       </return-value>
2566     </function>
2567     <function name="test_gvariant_i" c:identifier="regress_test_gvariant_i">
2568       <return-value transfer-ownership="none">
2569         <doc xml:whitespace="preserve">New variant</doc>
2570         <type name="GLib.Variant" c:type="GVariant*"/>
2571       </return-value>
2572     </function>
2573     <function name="test_gvariant_s" c:identifier="regress_test_gvariant_s">
2574       <return-value transfer-ownership="none">
2575         <doc xml:whitespace="preserve">New variant</doc>
2576         <type name="GLib.Variant" c:type="GVariant*"/>
2577       </return-value>
2578     </function>
2579     <function name="test_gvariant_v" c:identifier="regress_test_gvariant_v">
2580       <return-value transfer-ownership="none">
2581         <doc xml:whitespace="preserve">New variant</doc>
2582         <type name="GLib.Variant" c:type="GVariant*"/>
2583       </return-value>
2584     </function>
2585     <function name="test_hash_table_callback"
2586               c:identifier="regress_test_hash_table_callback">
2587       <return-value transfer-ownership="none">
2588         <type name="none" c:type="void"/>
2589       </return-value>
2590       <parameters>
2591         <parameter name="data" transfer-ownership="none">
2592           <doc xml:whitespace="preserve">GHashTable that gets passed to callback</doc>
2593           <type name="GLib.HashTable" c:type="GHashTable*">
2594             <type name="utf8"/>
2595             <type name="gint"/>
2596           </type>
2597         </parameter>
2598         <parameter name="callback" transfer-ownership="none" scope="call">
2599           <type name="TestCallbackHashtable"
2600                 c:type="RegressTestCallbackHashtable"/>
2601         </parameter>
2602       </parameters>
2603     </function>
2604     <function name="test_int" c:identifier="regress_test_int">
2605       <return-value transfer-ownership="none">
2606         <type name="gint" c:type="gint"/>
2607       </return-value>
2608       <parameters>
2609         <parameter name="in" transfer-ownership="none">
2610           <type name="gint" c:type="gint"/>
2611         </parameter>
2612       </parameters>
2613     </function>
2614     <function name="test_int16" c:identifier="regress_test_int16">
2615       <return-value transfer-ownership="none">
2616         <type name="gint16" c:type="gint16"/>
2617       </return-value>
2618       <parameters>
2619         <parameter name="in" transfer-ownership="none">
2620           <type name="gint16" c:type="gint16"/>
2621         </parameter>
2622       </parameters>
2623     </function>
2624     <function name="test_int32" c:identifier="regress_test_int32">
2625       <return-value transfer-ownership="none">
2626         <type name="gint32" c:type="gint32"/>
2627       </return-value>
2628       <parameters>
2629         <parameter name="in" transfer-ownership="none">
2630           <type name="gint32" c:type="gint32"/>
2631         </parameter>
2632       </parameters>
2633     </function>
2634     <function name="test_int64" c:identifier="regress_test_int64">
2635       <return-value transfer-ownership="none">
2636         <type name="gint64" c:type="gint64"/>
2637       </return-value>
2638       <parameters>
2639         <parameter name="in" transfer-ownership="none">
2640           <type name="gint64" c:type="gint64"/>
2641         </parameter>
2642       </parameters>
2643     </function>
2644     <function name="test_int8" c:identifier="regress_test_int8">
2645       <return-value transfer-ownership="none">
2646         <type name="gint8" c:type="gint8"/>
2647       </return-value>
2648       <parameters>
2649         <parameter name="in" transfer-ownership="none">
2650           <type name="gint8" c:type="gint8"/>
2651         </parameter>
2652       </parameters>
2653     </function>
2654     <function name="test_int_out_utf8"
2655               c:identifier="regress_test_int_out_utf8">
2656       <return-value transfer-ownership="none">
2657         <type name="none" c:type="void"/>
2658       </return-value>
2659       <parameters>
2660         <parameter name="length"
2661                    direction="out"
2662                    caller-allocates="0"
2663                    transfer-ownership="full">
2664           <type name="gint" c:type="int*"/>
2665         </parameter>
2666         <parameter name="in" transfer-ownership="none">
2667           <type name="utf8" c:type="char*"/>
2668         </parameter>
2669       </parameters>
2670     </function>
2671     <function name="test_int_value_arg"
2672               c:identifier="regress_test_int_value_arg">
2673       <return-value transfer-ownership="none">
2674         <type name="gint" c:type="int"/>
2675       </return-value>
2676       <parameters>
2677         <parameter name="v" transfer-ownership="none">
2678           <type name="GObject.Value" c:type="GValue*"/>
2679         </parameter>
2680       </parameters>
2681     </function>
2682     <function name="test_long" c:identifier="regress_test_long">
2683       <return-value transfer-ownership="none">
2684         <type name="glong" c:type="glong"/>
2685       </return-value>
2686       <parameters>
2687         <parameter name="in" transfer-ownership="none">
2688           <type name="glong" c:type="glong"/>
2689         </parameter>
2690       </parameters>
2691     </function>
2692     <function name="test_multi_callback"
2693               c:identifier="regress_test_multi_callback">
2694       <return-value transfer-ownership="none">
2695         <type name="gint" c:type="int"/>
2696       </return-value>
2697       <parameters>
2698         <parameter name="callback"
2699                    transfer-ownership="none"
2700                    allow-none="1"
2701                    scope="call">
2702           <type name="TestCallback" c:type="RegressTestCallback"/>
2703         </parameter>
2704       </parameters>
2705     </function>
2706     <function name="test_multi_double_args"
2707               c:identifier="regress_test_multi_double_args">
2708       <return-value transfer-ownership="none">
2709         <type name="none" c:type="void"/>
2710       </return-value>
2711       <parameters>
2712         <parameter name="in" transfer-ownership="none">
2713           <type name="gdouble" c:type="gdouble"/>
2714         </parameter>
2715         <parameter name="one"
2716                    direction="out"
2717                    caller-allocates="0"
2718                    transfer-ownership="full">
2719           <type name="gdouble" c:type="gdouble*"/>
2720         </parameter>
2721         <parameter name="two"
2722                    direction="out"
2723                    caller-allocates="0"
2724                    transfer-ownership="full">
2725           <type name="gdouble" c:type="gdouble*"/>
2726         </parameter>
2727       </parameters>
2728     </function>
2729     <function name="test_multiline_doc_comments"
2730               c:identifier="regress_test_multiline_doc_comments">
2731       <doc xml:whitespace="preserve">This is a function.
2732
2733 It has multiple lines in the documentation.
2734
2735 The sky is blue.
2736
2737 You will give me your credit card number.</doc>
2738       <return-value transfer-ownership="none">
2739         <type name="none" c:type="void"/>
2740       </return-value>
2741     </function>
2742     <function name="test_nested_parameter"
2743               c:identifier="regress_test_nested_parameter">
2744       <doc xml:whitespace="preserve">&lt;informaltable&gt;
2745   &lt;tgroup cols="3"&gt;
2746     &lt;thead&gt;
2747       &lt;row&gt;
2748         &lt;entry&gt;Syntax&lt;/entry&gt;
2749         &lt;entry&gt;Explanation&lt;/entry&gt;
2750         &lt;entry&gt;Examples&lt;/entry&gt;
2751       &lt;/row&gt;
2752     &lt;/thead&gt;
2753     &lt;tbody&gt;
2754       &lt;row&gt;
2755         &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
2756         &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
2757                0 and 255 or percentages&lt;/entry&gt;
2758         &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
2759 rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
2760       &lt;/row&gt;
2761       &lt;row&gt;
2762         &lt;entry&gt;rgba(@r, @g, @b, @a)&lt;/entry&gt;
2763         &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
2764                @a is a floating point number between 0 and 1&lt;/entry&gt;
2765         &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
2766       &lt;/row&gt;
2767    &lt;/tbody&gt;
2768  &lt;/tgroup&gt;
2769 &lt;/informaltable&gt;
2770
2771 What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
2772       <return-value transfer-ownership="none">
2773         <type name="none" c:type="void"/>
2774       </return-value>
2775       <parameters>
2776         <parameter name="a" transfer-ownership="none">
2777           <doc xml:whitespace="preserve">An integer</doc>
2778           <type name="gint" c:type="int"/>
2779         </parameter>
2780       </parameters>
2781     </function>
2782     <function name="test_null_gerror_callback"
2783               c:identifier="regress_test_null_gerror_callback">
2784       <return-value transfer-ownership="none">
2785         <type name="none" c:type="void"/>
2786       </return-value>
2787       <parameters>
2788         <parameter name="callback" transfer-ownership="none" scope="call">
2789           <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
2790         </parameter>
2791       </parameters>
2792     </function>
2793     <function name="test_owned_gerror_callback"
2794               c:identifier="regress_test_owned_gerror_callback">
2795       <return-value transfer-ownership="none">
2796         <type name="none" c:type="void"/>
2797       </return-value>
2798       <parameters>
2799         <parameter name="callback" transfer-ownership="none" scope="call">
2800           <type name="TestCallbackOwnedGError"
2801                 c:type="RegressTestCallbackOwnedGError"/>
2802         </parameter>
2803       </parameters>
2804     </function>
2805     <function name="test_short" c:identifier="regress_test_short">
2806       <return-value transfer-ownership="none">
2807         <type name="gshort" c:type="gshort"/>
2808       </return-value>
2809       <parameters>
2810         <parameter name="in" transfer-ownership="none">
2811           <type name="gshort" c:type="gshort"/>
2812         </parameter>
2813       </parameters>
2814     </function>
2815     <function name="test_simple_boxed_a_const_return"
2816               c:identifier="regress_test_simple_boxed_a_const_return"
2817               moved-to="TestSimpleBoxedA.const_return">
2818       <return-value transfer-ownership="none">
2819         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
2820       </return-value>
2821     </function>
2822     <function name="test_simple_callback"
2823               c:identifier="regress_test_simple_callback">
2824       <return-value transfer-ownership="none">
2825         <type name="none" c:type="void"/>
2826       </return-value>
2827       <parameters>
2828         <parameter name="callback"
2829                    transfer-ownership="none"
2830                    allow-none="1"
2831                    scope="call">
2832           <type name="TestSimpleCallback" c:type="RegressTestSimpleCallback"/>
2833         </parameter>
2834       </parameters>
2835     </function>
2836     <function name="test_size" c:identifier="regress_test_size">
2837       <return-value transfer-ownership="none">
2838         <type name="gsize" c:type="gsize"/>
2839       </return-value>
2840       <parameters>
2841         <parameter name="in" transfer-ownership="none">
2842           <type name="gsize" c:type="gsize"/>
2843         </parameter>
2844       </parameters>
2845     </function>
2846     <function name="test_ssize" c:identifier="regress_test_ssize">
2847       <return-value transfer-ownership="none">
2848         <type name="gssize" c:type="gssize"/>
2849       </return-value>
2850       <parameters>
2851         <parameter name="in" transfer-ownership="none">
2852           <type name="gssize" c:type="gssize"/>
2853         </parameter>
2854       </parameters>
2855     </function>
2856     <function name="test_strv_in" c:identifier="regress_test_strv_in">
2857       <return-value transfer-ownership="none">
2858         <type name="gboolean" c:type="gboolean"/>
2859       </return-value>
2860       <parameters>
2861         <parameter name="arr" transfer-ownership="none">
2862           <array c:type="char**">
2863             <type name="utf8" c:type="char*"/>
2864           </array>
2865         </parameter>
2866       </parameters>
2867     </function>
2868     <function name="test_strv_in_gvalue"
2869               c:identifier="regress_test_strv_in_gvalue">
2870       <return-value transfer-ownership="full">
2871         <type name="GObject.Value" c:type="GValue*"/>
2872       </return-value>
2873     </function>
2874     <function name="test_strv_out" c:identifier="regress_test_strv_out">
2875       <return-value transfer-ownership="full">
2876         <array c:type="char**">
2877           <type name="utf8"/>
2878         </array>
2879       </return-value>
2880     </function>
2881     <function name="test_strv_out_c" c:identifier="regress_test_strv_out_c">
2882       <return-value transfer-ownership="none">
2883         <array c:type="char**">
2884           <type name="utf8"/>
2885         </array>
2886       </return-value>
2887     </function>
2888     <function name="test_strv_out_container"
2889               c:identifier="regress_test_strv_out_container">
2890       <return-value transfer-ownership="container">
2891         <array c:type="char**">
2892           <type name="utf8"/>
2893         </array>
2894       </return-value>
2895     </function>
2896     <function name="test_strv_outarg" c:identifier="regress_test_strv_outarg">
2897       <return-value transfer-ownership="none">
2898         <type name="none" c:type="void"/>
2899       </return-value>
2900       <parameters>
2901         <parameter name="retp"
2902                    direction="out"
2903                    caller-allocates="0"
2904                    transfer-ownership="container">
2905           <array c:type="char***">
2906             <type name="utf8" c:type="char**"/>
2907           </array>
2908         </parameter>
2909       </parameters>
2910     </function>
2911     <function name="test_timet" c:identifier="regress_test_timet">
2912       <return-value transfer-ownership="none">
2913         <type name="glong" c:type="time_t"/>
2914       </return-value>
2915       <parameters>
2916         <parameter name="in" transfer-ownership="none">
2917           <type name="glong" c:type="time_t"/>
2918         </parameter>
2919       </parameters>
2920     </function>
2921     <function name="test_torture_signature_0"
2922               c:identifier="regress_test_torture_signature_0">
2923       <return-value transfer-ownership="none">
2924         <type name="none" c:type="void"/>
2925       </return-value>
2926       <parameters>
2927         <parameter name="x" transfer-ownership="none">
2928           <type name="gint" c:type="int"/>
2929         </parameter>
2930         <parameter name="y"
2931                    direction="out"
2932                    caller-allocates="0"
2933                    transfer-ownership="full">
2934           <type name="gdouble" c:type="double*"/>
2935         </parameter>
2936         <parameter name="z"
2937                    direction="out"
2938                    caller-allocates="0"
2939                    transfer-ownership="full">
2940           <type name="gint" c:type="int*"/>
2941         </parameter>
2942         <parameter name="foo" transfer-ownership="none">
2943           <type name="utf8" c:type="char*"/>
2944         </parameter>
2945         <parameter name="q"
2946                    direction="out"
2947                    caller-allocates="0"
2948                    transfer-ownership="full">
2949           <type name="gint" c:type="int*"/>
2950         </parameter>
2951         <parameter name="m" transfer-ownership="none">
2952           <type name="guint" c:type="guint"/>
2953         </parameter>
2954       </parameters>
2955     </function>
2956     <function name="test_torture_signature_1"
2957               c:identifier="regress_test_torture_signature_1"
2958               throws="1">
2959       <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
2960       <return-value transfer-ownership="none">
2961         <type name="gboolean" c:type="gboolean"/>
2962       </return-value>
2963       <parameters>
2964         <parameter name="x" transfer-ownership="none">
2965           <type name="gint" c:type="int"/>
2966         </parameter>
2967         <parameter name="y"
2968                    direction="out"
2969                    caller-allocates="0"
2970                    transfer-ownership="full">
2971           <type name="gdouble" c:type="double*"/>
2972         </parameter>
2973         <parameter name="z"
2974                    direction="out"
2975                    caller-allocates="0"
2976                    transfer-ownership="full">
2977           <type name="gint" c:type="int*"/>
2978         </parameter>
2979         <parameter name="foo" transfer-ownership="none">
2980           <type name="utf8" c:type="char*"/>
2981         </parameter>
2982         <parameter name="q"
2983                    direction="out"
2984                    caller-allocates="0"
2985                    transfer-ownership="full">
2986           <type name="gint" c:type="int*"/>
2987         </parameter>
2988         <parameter name="m" transfer-ownership="none">
2989           <type name="guint" c:type="guint"/>
2990         </parameter>
2991       </parameters>
2992     </function>
2993     <function name="test_torture_signature_2"
2994               c:identifier="regress_test_torture_signature_2">
2995       <return-value transfer-ownership="none">
2996         <type name="none" c:type="void"/>
2997       </return-value>
2998       <parameters>
2999         <parameter name="x" transfer-ownership="none">
3000           <type name="gint" c:type="int"/>
3001         </parameter>
3002         <parameter name="callback"
3003                    transfer-ownership="none"
3004                    scope="notified"
3005                    closure="2"
3006                    destroy="3">
3007           <type name="TestCallbackUserData"
3008                 c:type="RegressTestCallbackUserData"/>
3009         </parameter>
3010         <parameter name="user_data" transfer-ownership="none">
3011           <type name="gpointer" c:type="gpointer"/>
3012         </parameter>
3013         <parameter name="notify" transfer-ownership="none" scope="async">
3014           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
3015         </parameter>
3016         <parameter name="y"
3017                    direction="out"
3018                    caller-allocates="0"
3019                    transfer-ownership="full">
3020           <type name="gdouble" c:type="double*"/>
3021         </parameter>
3022         <parameter name="z"
3023                    direction="out"
3024                    caller-allocates="0"
3025                    transfer-ownership="full">
3026           <type name="gint" c:type="int*"/>
3027         </parameter>
3028         <parameter name="foo" transfer-ownership="none">
3029           <type name="utf8" c:type="char*"/>
3030         </parameter>
3031         <parameter name="q"
3032                    direction="out"
3033                    caller-allocates="0"
3034                    transfer-ownership="full">
3035           <type name="gint" c:type="int*"/>
3036         </parameter>
3037         <parameter name="m" transfer-ownership="none">
3038           <type name="guint" c:type="guint"/>
3039         </parameter>
3040       </parameters>
3041     </function>
3042     <function name="test_uint" c:identifier="regress_test_uint">
3043       <return-value transfer-ownership="none">
3044         <type name="guint" c:type="guint"/>
3045       </return-value>
3046       <parameters>
3047         <parameter name="in" transfer-ownership="none">
3048           <type name="guint" c:type="guint"/>
3049         </parameter>
3050       </parameters>
3051     </function>
3052     <function name="test_uint16" c:identifier="regress_test_uint16">
3053       <return-value transfer-ownership="none">
3054         <type name="guint16" c:type="guint16"/>
3055       </return-value>
3056       <parameters>
3057         <parameter name="in" transfer-ownership="none">
3058           <type name="guint16" c:type="guint16"/>
3059         </parameter>
3060       </parameters>
3061     </function>
3062     <function name="test_uint32" c:identifier="regress_test_uint32">
3063       <return-value transfer-ownership="none">
3064         <type name="guint32" c:type="guint32"/>
3065       </return-value>
3066       <parameters>
3067         <parameter name="in" transfer-ownership="none">
3068           <type name="guint32" c:type="guint32"/>
3069         </parameter>
3070       </parameters>
3071     </function>
3072     <function name="test_uint64" c:identifier="regress_test_uint64">
3073       <return-value transfer-ownership="none">
3074         <type name="guint64" c:type="guint64"/>
3075       </return-value>
3076       <parameters>
3077         <parameter name="in" transfer-ownership="none">
3078           <type name="guint64" c:type="guint64"/>
3079         </parameter>
3080       </parameters>
3081     </function>
3082     <function name="test_uint8" c:identifier="regress_test_uint8">
3083       <return-value transfer-ownership="none">
3084         <type name="guint8" c:type="guint8"/>
3085       </return-value>
3086       <parameters>
3087         <parameter name="in" transfer-ownership="none">
3088           <type name="guint8" c:type="guint8"/>
3089         </parameter>
3090       </parameters>
3091     </function>
3092     <function name="test_ulong" c:identifier="regress_test_ulong">
3093       <return-value transfer-ownership="none">
3094         <type name="gulong" c:type="gulong"/>
3095       </return-value>
3096       <parameters>
3097         <parameter name="in" transfer-ownership="none">
3098           <type name="gulong" c:type="gulong"/>
3099         </parameter>
3100       </parameters>
3101     </function>
3102     <function name="test_unichar" c:identifier="regress_test_unichar">
3103       <return-value transfer-ownership="none">
3104         <type name="gunichar" c:type="gunichar"/>
3105       </return-value>
3106       <parameters>
3107         <parameter name="in" transfer-ownership="none">
3108           <type name="gunichar" c:type="gunichar"/>
3109         </parameter>
3110       </parameters>
3111     </function>
3112     <function name="test_unsigned_enum_param"
3113               c:identifier="regress_test_unsigned_enum_param">
3114       <return-value transfer-ownership="none">
3115         <type name="utf8" c:type="gchar*"/>
3116       </return-value>
3117       <parameters>
3118         <parameter name="e" transfer-ownership="none">
3119           <type name="TestEnumUnsigned" c:type="RegressTestEnumUnsigned"/>
3120         </parameter>
3121       </parameters>
3122     </function>
3123     <function name="test_ushort" c:identifier="regress_test_ushort">
3124       <return-value transfer-ownership="none">
3125         <type name="gushort" c:type="gushort"/>
3126       </return-value>
3127       <parameters>
3128         <parameter name="in" transfer-ownership="none">
3129           <type name="gushort" c:type="gushort"/>
3130         </parameter>
3131       </parameters>
3132     </function>
3133     <function name="test_utf8_const_in"
3134               c:identifier="regress_test_utf8_const_in">
3135       <return-value transfer-ownership="none">
3136         <type name="none" c:type="void"/>
3137       </return-value>
3138       <parameters>
3139         <parameter name="in" transfer-ownership="none">
3140           <type name="utf8" c:type="char*"/>
3141         </parameter>
3142       </parameters>
3143     </function>
3144     <function name="test_utf8_const_return"
3145               c:identifier="regress_test_utf8_const_return">
3146       <return-value transfer-ownership="none">
3147         <doc xml:whitespace="preserve">UTF-8 string</doc>
3148         <type name="utf8" c:type="char*"/>
3149       </return-value>
3150     </function>
3151     <function name="test_utf8_inout" c:identifier="regress_test_utf8_inout">
3152       <return-value transfer-ownership="none">
3153         <type name="none" c:type="void"/>
3154       </return-value>
3155       <parameters>
3156         <parameter name="inout"
3157                    direction="inout"
3158                    caller-allocates="0"
3159                    transfer-ownership="full">
3160           <type name="utf8" c:type="char**"/>
3161         </parameter>
3162       </parameters>
3163     </function>
3164     <function name="test_utf8_nonconst_return"
3165               c:identifier="regress_test_utf8_nonconst_return">
3166       <return-value transfer-ownership="full">
3167         <doc xml:whitespace="preserve">UTF-8 string</doc>
3168         <type name="utf8" c:type="char*"/>
3169       </return-value>
3170     </function>
3171     <function name="test_utf8_null_in"
3172               c:identifier="regress_test_utf8_null_in">
3173       <return-value transfer-ownership="none">
3174         <type name="none" c:type="void"/>
3175       </return-value>
3176       <parameters>
3177         <parameter name="in" transfer-ownership="none" allow-none="1">
3178           <type name="utf8" c:type="char*"/>
3179         </parameter>
3180       </parameters>
3181     </function>
3182     <function name="test_utf8_null_out"
3183               c:identifier="regress_test_utf8_null_out">
3184       <return-value transfer-ownership="none">
3185         <type name="none" c:type="void"/>
3186       </return-value>
3187       <parameters>
3188         <parameter name="char_out"
3189                    direction="out"
3190                    caller-allocates="0"
3191                    transfer-ownership="full"
3192                    allow-none="1">
3193           <type name="utf8" c:type="char**"/>
3194         </parameter>
3195       </parameters>
3196     </function>
3197     <function name="test_utf8_out" c:identifier="regress_test_utf8_out">
3198       <return-value transfer-ownership="none">
3199         <type name="none" c:type="void"/>
3200       </return-value>
3201       <parameters>
3202         <parameter name="out"
3203                    direction="out"
3204                    caller-allocates="0"
3205                    transfer-ownership="full">
3206           <type name="utf8" c:type="char**"/>
3207         </parameter>
3208       </parameters>
3209     </function>
3210     <function name="test_utf8_out_nonconst_return"
3211               c:identifier="regress_test_utf8_out_nonconst_return">
3212       <return-value transfer-ownership="full">
3213         <doc xml:whitespace="preserve">a copy of "first"</doc>
3214         <type name="utf8" c:type="char*"/>
3215       </return-value>
3216       <parameters>
3217         <parameter name="out"
3218                    direction="out"
3219                    caller-allocates="0"
3220                    transfer-ownership="full">
3221           <doc xml:whitespace="preserve">a copy of "second"</doc>
3222           <type name="utf8" c:type="char**"/>
3223         </parameter>
3224       </parameters>
3225     </function>
3226     <function name="test_utf8_out_out"
3227               c:identifier="regress_test_utf8_out_out">
3228       <return-value transfer-ownership="none">
3229         <type name="none" c:type="void"/>
3230       </return-value>
3231       <parameters>
3232         <parameter name="out0"
3233                    direction="out"
3234                    caller-allocates="0"
3235                    transfer-ownership="full">
3236           <doc xml:whitespace="preserve">a copy of "first"</doc>
3237           <type name="utf8" c:type="char**"/>
3238         </parameter>
3239         <parameter name="out1"
3240                    direction="out"
3241                    caller-allocates="0"
3242                    transfer-ownership="full">
3243           <doc xml:whitespace="preserve">a copy of "second"</doc>
3244           <type name="utf8" c:type="char**"/>
3245         </parameter>
3246       </parameters>
3247     </function>
3248     <function name="test_value_get_fundamental_object"
3249               c:identifier="regress_test_value_get_fundamental_object"
3250               introspectable="0">
3251       <return-value>
3252         <type name="TestFundamentalObject"
3253               c:type="RegressTestFundamentalObject*"/>
3254       </return-value>
3255       <parameters>
3256         <parameter name="value" transfer-ownership="none">
3257           <type name="GObject.Value" c:type="GValue*"/>
3258         </parameter>
3259       </parameters>
3260     </function>
3261     <function name="test_value_return"
3262               c:identifier="regress_test_value_return">
3263       <return-value transfer-ownership="none">
3264         <doc xml:whitespace="preserve">the int wrapped in a GValue.</doc>
3265         <type name="GObject.Value" c:type="GValue*"/>
3266       </return-value>
3267       <parameters>
3268         <parameter name="i" transfer-ownership="none">
3269           <doc xml:whitespace="preserve">an int</doc>
3270           <type name="gint" c:type="int"/>
3271         </parameter>
3272       </parameters>
3273     </function>
3274     <function name="test_value_set_fundamental_object"
3275               c:identifier="regress_test_value_set_fundamental_object"
3276               introspectable="0">
3277       <return-value transfer-ownership="none">
3278         <type name="none" c:type="void"/>
3279       </return-value>
3280       <parameters>
3281         <parameter name="value" transfer-ownership="none">
3282           <type name="GObject.Value" c:type="GValue*"/>
3283         </parameter>
3284         <parameter name="fundamental_object" transfer-ownership="none">
3285           <type name="TestFundamentalObject"
3286                 c:type="RegressTestFundamentalObject*"/>
3287         </parameter>
3288       </parameters>
3289     </function>
3290   </namespace>
3291 </repository>