Make caller-allocates detection work for struct aliases
[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" value="44.220000">
36       <type name="gdouble" c:type="gdouble"/>
37     </constant>
38     <constant name="INT_CONSTANT" value="4422">
39       <type name="gint" c:type="gint"/>
40     </constant>
41     <record name="Intset" c:type="RegressIntset" disguised="1">
42       <doc xml:whitespace="preserve">Like telepathy-glib's TpIntset.</doc>
43     </record>
44     <constant name="Mixed_Case_Constant" value="4423">
45       <type name="gint" c:type="gint"/>
46     </constant>
47     <constant name="STRING_CONSTANT" value="Some String">
48       <type name="utf8" c:type="gchar*"/>
49     </constant>
50     <record name="SkippedStructure"
51             c:type="RegressSkippedStructure"
52             introspectable="0">
53       <doc xml:whitespace="preserve">This should be skipped, and moreover, all function which
54 use it should be.</doc>
55       <field name="x" writable="1">
56         <type name="gint" c:type="int"/>
57       </field>
58       <field name="v" writable="1">
59         <type name="gdouble" c:type="double"/>
60       </field>
61     </record>
62     <record name="TestBoxed"
63             c:type="RegressTestBoxed"
64             glib:type-name="RegressTestBoxed"
65             glib:get-type="regress_test_boxed_get_type"
66             c:symbol-prefix="test_boxed">
67       <field name="some_int8" writable="1">
68         <type name="gint8" c:type="gint8"/>
69       </field>
70       <field name="nested_a" writable="1">
71         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
72       </field>
73       <field name="priv" writable="1">
74         <type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
75       </field>
76       <constructor name="new" c:identifier="regress_test_boxed_new">
77         <return-value transfer-ownership="full">
78           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
79         </return-value>
80       </constructor>
81       <constructor name="new_alternative_constructor1"
82                    c:identifier="regress_test_boxed_new_alternative_constructor1">
83         <return-value transfer-ownership="full">
84           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
85         </return-value>
86         <parameters>
87           <parameter name="i" transfer-ownership="none">
88             <type name="gint" c:type="int"/>
89           </parameter>
90         </parameters>
91       </constructor>
92       <constructor name="new_alternative_constructor2"
93                    c:identifier="regress_test_boxed_new_alternative_constructor2">
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           <parameter name="j" transfer-ownership="none">
102             <type name="gint" c:type="int"/>
103           </parameter>
104         </parameters>
105       </constructor>
106       <constructor name="new_alternative_constructor3"
107                    c:identifier="regress_test_boxed_new_alternative_constructor3">
108         <return-value transfer-ownership="full">
109           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
110         </return-value>
111         <parameters>
112           <parameter name="s" transfer-ownership="none">
113             <type name="utf8" c:type="char*"/>
114           </parameter>
115         </parameters>
116       </constructor>
117       <method name="copy" c:identifier="regress_test_boxed_copy">
118         <return-value transfer-ownership="full">
119           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
120         </return-value>
121       </method>
122       <method name="equals" c:identifier="regress_test_boxed_equals">
123         <return-value transfer-ownership="none">
124           <type name="gboolean" c:type="gboolean"/>
125         </return-value>
126         <parameters>
127           <parameter name="other" transfer-ownership="none">
128             <type name="TestBoxed" c:type="RegressTestBoxed*"/>
129           </parameter>
130         </parameters>
131       </method>
132     </record>
133     <record name="TestBoxedPrivate"
134             c:type="RegressTestBoxedPrivate"
135             disguised="1">
136     </record>
137     <callback name="TestCallback" c:type="RegressTestCallback">
138       <return-value transfer-ownership="none">
139         <type name="gint" c:type="int"/>
140       </return-value>
141     </callback>
142     <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
143       <return-value transfer-ownership="none">
144         <type name="gint" c:type="int"/>
145       </return-value>
146       <parameters>
147         <parameter name="foo" transfer-ownership="none">
148           <doc xml:whitespace="preserve">the investment rate</doc>
149           <type name="gint" c:type="int"/>
150         </parameter>
151         <parameter name="bar" transfer-ownership="none">
152           <doc xml:whitespace="preserve">how much money</doc>
153           <type name="gdouble" c:type="double"/>
154         </parameter>
155         <parameter name="path" transfer-ownership="none">
156           <doc xml:whitespace="preserve">Path to file</doc>
157           <type name="filename"/>
158         </parameter>
159       </parameters>
160     </callback>
161     <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
162       <return-value transfer-ownership="none">
163         <type name="gint" c:type="int"/>
164       </return-value>
165       <parameters>
166         <parameter name="user_data" transfer-ownership="none" closure="0">
167           <type name="gpointer" c:type="gpointer"/>
168         </parameter>
169       </parameters>
170     </callback>
171     <enumeration name="TestEnum"
172                  glib:type-name="RegressTestEnum"
173                  glib:get-type="regress_test_enum_get_type"
174                  c:type="RegressTestEnum">
175       <member name="value1"
176               value="0"
177               c:identifier="REGRESS_TEST_VALUE1"
178               glib:nick="value1"/>
179       <member name="value2"
180               value="1"
181               c:identifier="REGRESS_TEST_VALUE2"
182               glib:nick="value2"/>
183       <member name="value3"
184               value="-1"
185               c:identifier="REGRESS_TEST_VALUE3"
186               glib:nick="value3"/>
187     </enumeration>
188     <enumeration name="TestEnumUnsigned"
189                  glib:type-name="RegressTestEnumUnsigned"
190                  glib:get-type="regress_test_enum_unsigned_get_type"
191                  c:type="RegressTestEnumUnsigned">
192       <member name="value1"
193               value="1"
194               c:identifier="REGRESS_TEST_UNSIGNED_VALUE1"
195               glib:nick="value1"/>
196       <member name="value2"
197               value="2147483648"
198               c:identifier="REGRESS_TEST_UNSIGNED_VALUE2"
199               glib:nick="value2"/>
200     </enumeration>
201     <bitfield name="TestFlags"
202               glib:type-name="RegressTestFlags"
203               glib:get-type="regress_test_flags_get_type"
204               c:type="RegressTestFlags">
205       <member name="flag1"
206               value="1"
207               c:identifier="TEST_FLAG1"
208               glib:nick="flag1"/>
209       <member name="flag2"
210               value="2"
211               c:identifier="TEST_FLAG2"
212               glib:nick="flag2"/>
213       <member name="flag3"
214               value="4"
215               c:identifier="TEST_FLAG3"
216               glib:nick="flag3"/>
217     </bitfield>
218     <class name="TestFloating"
219            c:symbol-prefix="test_floating"
220            c:type="RegressTestFloating"
221            parent="GObject.InitiallyUnowned"
222            glib:type-name="RegressTestFloating"
223            glib:get-type="regress_test_floating_get_type"
224            glib:type-struct="TestFloatingClass">
225       <constructor name="new" c:identifier="regress_test_floating_new">
226         <return-value transfer-ownership="none">
227           <doc xml:whitespace="preserve">A new floating #RegressTestFloating</doc>
228           <type name="TestFloating" c:type="RegressTestFloating*"/>
229         </return-value>
230       </constructor>
231       <field name="parent_instance">
232         <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
233       </field>
234     </class>
235     <record name="TestFloatingClass"
236             c:type="RegressTestFloatingClass"
237             glib:is-gtype-struct-for="TestFloating">
238       <field name="parent_class">
239         <type name="GObject.InitiallyUnownedClass"
240               c:type="GInitiallyUnownedClass"/>
241       </field>
242     </record>
243     <class name="TestFundamentalObject"
244            c:symbol-prefix="test_fundamental_object"
245            c:type="RegressTestFundamentalObject"
246            abstract="1"
247            glib:type-name="RegressTestFundamentalObject"
248            glib:get-type="regress_test_fundamental_object_get_type"
249            glib:type-struct="TestFundamentalObjectClass"
250            glib:fundamental="1"
251            glib:ref-func="regress_test_fundamental_object_ref"
252            glib:unref-func="regress_test_fundamental_object_unref"
253            glib:set-value-func="regress_test_value_set_fundamental_object"
254            glib:get-value-func="regress_test_value_get_fundamental_object">
255       <method name="ref" c:identifier="regress_test_fundamental_object_ref">
256         <return-value transfer-ownership="full">
257           <doc xml:whitespace="preserve">A new #RegressTestFundamentalObject</doc>
258           <type name="TestFundamentalObject"
259                 c:type="RegressTestFundamentalObject*"/>
260         </return-value>
261       </method>
262       <method name="unref"
263               c:identifier="regress_test_fundamental_object_unref">
264         <return-value transfer-ownership="none">
265           <type name="none" c:type="void"/>
266         </return-value>
267       </method>
268       <field name="instance">
269         <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
270       </field>
271       <field name="refcount">
272         <type name="gint" c:type="gint"/>
273       </field>
274       <field name="flags">
275         <type name="guint" c:type="guint"/>
276       </field>
277     </class>
278     <record name="TestFundamentalObjectClass"
279             c:type="RegressTestFundamentalObjectClass"
280             glib:is-gtype-struct-for="TestFundamentalObject">
281       <field name="type_class">
282         <type name="GObject.TypeClass" c:type="GTypeClass"/>
283       </field>
284       <field name="copy">
285         <type name="TestFundamentalObjectCopyFunction"
286               c:type="RegressTestFundamentalObjectCopyFunction"/>
287       </field>
288       <field name="finalize">
289         <type name="TestFundamentalObjectFinalizeFunction"
290               c:type="RegressTestFundamentalObjectFinalizeFunction"/>
291       </field>
292     </record>
293     <callback name="TestFundamentalObjectCopyFunction"
294               c:type="RegressTestFundamentalObjectCopyFunction">
295       <return-value transfer-ownership="full">
296         <type name="TestFundamentalObject"
297               c:type="RegressTestFundamentalObject*"/>
298       </return-value>
299       <parameters>
300         <parameter name="obj" transfer-ownership="none">
301           <type name="TestFundamentalObject"
302                 c:type="RegressTestFundamentalObject*"/>
303         </parameter>
304       </parameters>
305     </callback>
306     <callback name="TestFundamentalObjectFinalizeFunction"
307               c:type="RegressTestFundamentalObjectFinalizeFunction">
308       <return-value transfer-ownership="none">
309         <type name="none" c:type="void"/>
310       </return-value>
311       <parameters>
312         <parameter name="obj" transfer-ownership="none">
313           <type name="TestFundamentalObject"
314                 c:type="RegressTestFundamentalObject*"/>
315         </parameter>
316       </parameters>
317     </callback>
318     <class name="TestFundamentalSubObject"
319            c:symbol-prefix="test_fundamental_sub_object"
320            c:type="RegressTestFundamentalSubObject"
321            parent="TestFundamentalObject"
322            glib:type-name="RegressTestFundamentalSubObject"
323            glib:get-type="regress_test_fundamental_sub_object_get_type"
324            glib:type-struct="TestFundamentalSubObjectClass"
325            glib:fundamental="1">
326       <constructor name="new"
327                    c:identifier="regress_test_fundamental_sub_object_new">
328         <return-value transfer-ownership="full">
329           <type name="TestFundamentalSubObject"
330                 c:type="RegressTestFundamentalSubObject*"/>
331         </return-value>
332         <parameters>
333           <parameter name="data" transfer-ownership="none">
334             <type name="utf8" c:type="char*"/>
335           </parameter>
336         </parameters>
337       </constructor>
338       <field name="fundamental_object">
339         <type name="TestFundamentalObject"
340               c:type="RegressTestFundamentalObject"/>
341       </field>
342       <field name="data">
343         <type name="utf8" c:type="char*"/>
344       </field>
345     </class>
346     <record name="TestFundamentalSubObjectClass"
347             c:type="RegressTestFundamentalSubObjectClass"
348             glib:is-gtype-struct-for="TestFundamentalSubObject">
349       <field name="fundamental_object_class">
350         <type name="TestFundamentalObjectClass"
351               c:type="RegressTestFundamentalObjectClass"/>
352       </field>
353     </record>
354     <interface name="TestInterface"
355                c:symbol-prefix="test_interface"
356                c:type="RegressTestInterface"
357                glib:type-name="RegressTestInterface"
358                glib:get-type="regress_test_interface_get_type"
359                glib:type-struct="TestInterfaceIface">
360     </interface>
361     <record name="TestInterfaceIface"
362             c:type="RegressTestInterfaceIface"
363             glib:is-gtype-struct-for="TestInterface">
364       <field name="base_iface">
365         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
366       </field>
367     </record>
368     <class name="TestObj"
369            c:symbol-prefix="test_obj"
370            c:type="RegressTestObj"
371            parent="GObject.Object"
372            glib:type-name="RegressTestObj"
373            glib:get-type="regress_test_obj_get_type"
374            glib:type-struct="TestObjClass">
375       <constructor name="new_callback"
376                    c:identifier="regress_test_obj_new_callback">
377         <return-value transfer-ownership="full">
378           <type name="TestObj" c:type="RegressTestObj*"/>
379         </return-value>
380         <parameters>
381           <parameter name="callback"
382                      transfer-ownership="none"
383                      scope="notified"
384                      closure="1"
385                      destroy="2">
386             <type name="TestCallbackUserData"
387                   c:type="RegressTestCallbackUserData"/>
388           </parameter>
389           <parameter name="user_data" transfer-ownership="none">
390             <type name="gpointer" c:type="gpointer"/>
391           </parameter>
392           <parameter name="notify" transfer-ownership="none" scope="async">
393             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
394           </parameter>
395         </parameters>
396       </constructor>
397       <constructor name="new_from_file"
398                    c:identifier="regress_test_obj_new_from_file"
399                    throws="1">
400         <return-value transfer-ownership="full">
401           <type name="TestObj" c:type="RegressTestObj*"/>
402         </return-value>
403         <parameters>
404           <parameter name="x" transfer-ownership="none">
405             <type name="utf8" c:type="char*"/>
406           </parameter>
407         </parameters>
408       </constructor>
409       <function name="null_out" c:identifier="regress_test_obj_null_out">
410         <return-value transfer-ownership="none">
411           <type name="none" c:type="void"/>
412         </return-value>
413         <parameters>
414           <parameter name="obj"
415                      direction="out"
416                      caller-allocates="0"
417                      transfer-ownership="full"
418                      allow-none="1">
419             <doc xml:whitespace="preserve">A #RegressTestObj</doc>
420             <type name="TestObj" c:type="RegressTestObj**"/>
421           </parameter>
422         </parameters>
423       </function>
424       <function name="static_method"
425                 c:identifier="regress_test_obj_static_method">
426         <return-value transfer-ownership="none">
427           <type name="gdouble" c:type="double"/>
428         </return-value>
429         <parameters>
430           <parameter name="x" transfer-ownership="none">
431             <type name="gint" c:type="int"/>
432           </parameter>
433         </parameters>
434       </function>
435       <function name="static_method_callback"
436                 c:identifier="regress_test_obj_static_method_callback">
437         <return-value transfer-ownership="none">
438           <type name="none" c:type="void"/>
439         </return-value>
440         <parameters>
441           <parameter name="callback"
442                      transfer-ownership="none"
443                      allow-none="1"
444                      scope="call">
445             <type name="TestCallback" c:type="RegressTestCallback"/>
446           </parameter>
447         </parameters>
448       </function>
449       <virtual-method name="matrix" invoker="do_matrix">
450         <doc xml:whitespace="preserve">This method is virtual.  Notably its name differs from the virtual
451 slot name, which makes it useful for testing bindings handle this
452 case.</doc>
453         <return-value transfer-ownership="none">
454           <type name="gint" c:type="int"/>
455         </return-value>
456         <parameters>
457           <parameter name="somestr" transfer-ownership="none">
458             <doc xml:whitespace="preserve">Meaningless string</doc>
459             <type name="utf8" c:type="char*"/>
460           </parameter>
461         </parameters>
462       </virtual-method>
463       <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
464         <doc xml:whitespace="preserve">This method is virtual.  Notably its name differs from the virtual
465 slot name, which makes it useful for testing bindings handle this
466 case.</doc>
467         <return-value transfer-ownership="none">
468           <type name="gint" c:type="int"/>
469         </return-value>
470         <parameters>
471           <parameter name="somestr" transfer-ownership="none">
472             <doc xml:whitespace="preserve">Meaningless string</doc>
473             <type name="utf8" c:type="char*"/>
474           </parameter>
475         </parameters>
476       </method>
477       <method name="instance_method"
478               c:identifier="regress_test_obj_instance_method">
479         <return-value transfer-ownership="none">
480           <type name="gint" c:type="int"/>
481         </return-value>
482       </method>
483       <method name="instance_method_callback"
484               c:identifier="regress_test_obj_instance_method_callback">
485         <return-value transfer-ownership="none">
486           <type name="none" c:type="void"/>
487         </return-value>
488         <parameters>
489           <parameter name="callback"
490                      transfer-ownership="none"
491                      allow-none="1"
492                      scope="call">
493             <type name="TestCallback" c:type="RegressTestCallback"/>
494           </parameter>
495         </parameters>
496       </method>
497       <method name="set_bare" c:identifier="regress_test_obj_set_bare">
498         <return-value transfer-ownership="none">
499           <type name="none" c:type="void"/>
500         </return-value>
501         <parameters>
502           <parameter name="bare" transfer-ownership="none" allow-none="1">
503             <type name="GObject.Object" c:type="GObject*"/>
504           </parameter>
505         </parameters>
506       </method>
507       <method name="torture_signature_0"
508               c:identifier="regress_test_obj_torture_signature_0">
509         <return-value transfer-ownership="none">
510           <type name="none" c:type="void"/>
511         </return-value>
512         <parameters>
513           <parameter name="x" transfer-ownership="none">
514             <type name="gint" c:type="int"/>
515           </parameter>
516           <parameter name="y"
517                      direction="out"
518                      caller-allocates="0"
519                      transfer-ownership="full">
520             <type name="gdouble" c:type="double*"/>
521           </parameter>
522           <parameter name="z"
523                      direction="out"
524                      caller-allocates="0"
525                      transfer-ownership="full">
526             <type name="gint" c:type="int*"/>
527           </parameter>
528           <parameter name="foo" transfer-ownership="none">
529             <type name="utf8" c:type="char*"/>
530           </parameter>
531           <parameter name="q"
532                      direction="out"
533                      caller-allocates="0"
534                      transfer-ownership="full">
535             <type name="gint" c:type="int*"/>
536           </parameter>
537           <parameter name="m" transfer-ownership="none">
538             <type name="guint" c:type="guint"/>
539           </parameter>
540         </parameters>
541       </method>
542       <method name="torture_signature_1"
543               c:identifier="regress_test_obj_torture_signature_1"
544               throws="1">
545         <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
546         <return-value transfer-ownership="none">
547           <type name="gboolean" c:type="gboolean"/>
548         </return-value>
549         <parameters>
550           <parameter name="x" transfer-ownership="none">
551             <type name="gint" c:type="int"/>
552           </parameter>
553           <parameter name="y"
554                      direction="out"
555                      caller-allocates="0"
556                      transfer-ownership="full">
557             <type name="gdouble" c:type="double*"/>
558           </parameter>
559           <parameter name="z"
560                      direction="out"
561                      caller-allocates="0"
562                      transfer-ownership="full">
563             <type name="gint" c:type="int*"/>
564           </parameter>
565           <parameter name="foo" transfer-ownership="none">
566             <type name="utf8" c:type="char*"/>
567           </parameter>
568           <parameter name="q"
569                      direction="out"
570                      caller-allocates="0"
571                      transfer-ownership="full">
572             <type name="gint" c:type="int*"/>
573           </parameter>
574           <parameter name="m" transfer-ownership="none">
575             <type name="guint" c:type="guint"/>
576           </parameter>
577         </parameters>
578       </method>
579       <property name="bare" writable="1" transfer-ownership="none">
580         <type name="GObject.Object"/>
581       </property>
582       <property name="boxed" writable="1" transfer-ownership="none">
583         <type name="TestBoxed"/>
584       </property>
585       <property name="double" writable="1" transfer-ownership="none">
586         <type name="gdouble"/>
587       </property>
588       <property name="float" writable="1" transfer-ownership="none">
589         <type name="gfloat"/>
590       </property>
591       <property name="hash-table" writable="1" transfer-ownership="container">
592         <type name="GLib.HashTable">
593           <type name="utf8"/>
594           <type name="gint8"/>
595         </type>
596       </property>
597       <property name="int" writable="1" transfer-ownership="none">
598         <type name="gint"/>
599       </property>
600       <property name="list" writable="1" transfer-ownership="none">
601         <type name="GLib.List">
602           <type name="utf8"/>
603         </type>
604       </property>
605       <property name="string" writable="1" transfer-ownership="none">
606         <type name="utf8"/>
607       </property>
608       <field name="parent_instance">
609         <type name="GObject.Object" c:type="GObject"/>
610       </field>
611       <field name="bare">
612         <type name="GObject.Object" c:type="GObject*"/>
613       </field>
614       <field name="boxed">
615         <type name="TestBoxed" c:type="RegressTestBoxed*"/>
616       </field>
617       <field name="hash_table">
618         <type name="GLib.HashTable" c:type="GHashTable*">
619           <type name="gpointer" c:type="gpointer"/>
620           <type name="gpointer" c:type="gpointer"/>
621         </type>
622       </field>
623       <field name="list">
624         <type name="GLib.List" c:type="GList*">
625           <type name="gpointer" c:type="gpointer"/>
626         </type>
627       </field>
628       <field name="some_int8">
629         <type name="gint8" c:type="gint8"/>
630       </field>
631       <field name="some_float">
632         <type name="gfloat" c:type="float"/>
633       </field>
634       <field name="some_double">
635         <type name="gdouble" c:type="double"/>
636       </field>
637       <field name="string">
638         <type name="utf8" c:type="char*"/>
639       </field>
640       <glib:signal name="sig-with-array-prop">
641         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's</doc>
642         <return-value transfer-ownership="none">
643           <type name="none"/>
644         </return-value>
645         <parameters>
646           <parameter name="arr" transfer-ownership="none">
647             <doc xml:whitespace="preserve">numbers</doc>
648             <array name="GLib.Array">
649               <type name="guint"/>
650             </array>
651           </parameter>
652         </parameters>
653       </glib:signal>
654       <glib:signal name="sig-with-hash-prop">
655         <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
656 TpAccount::status-changed</doc>
657         <return-value transfer-ownership="none">
658           <type name="none"/>
659         </return-value>
660         <parameters>
661           <parameter name="hash" transfer-ownership="none">
662             <type name="GLib.HashTable">
663               <type name="utf8"/>
664               <type name="GObject.Value"/>
665             </type>
666           </parameter>
667         </parameters>
668       </glib:signal>
669       <glib:signal name="sig-with-strv">
670         <doc xml:whitespace="preserve">Test GStrv as a param.</doc>
671         <return-value transfer-ownership="none">
672           <type name="none"/>
673         </return-value>
674         <parameters>
675           <parameter name="strs" transfer-ownership="none">
676             <doc xml:whitespace="preserve">strings</doc>
677             <array>
678               <type name="utf8"/>
679             </array>
680           </parameter>
681         </parameters>
682       </glib:signal>
683       <glib:signal name="test">
684         <return-value transfer-ownership="none">
685           <type name="none"/>
686         </return-value>
687       </glib:signal>
688       <glib:signal name="test-with-static-scope-arg">
689         <return-value transfer-ownership="none">
690           <type name="none"/>
691         </return-value>
692         <parameters>
693           <parameter name="object" transfer-ownership="none">
694             <type name="TestSimpleBoxedA"/>
695           </parameter>
696         </parameters>
697       </glib:signal>
698     </class>
699     <record name="TestObjClass"
700             c:type="RegressTestObjClass"
701             glib:is-gtype-struct-for="TestObj">
702       <field name="parent_class">
703         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
704       </field>
705       <field name="matrix">
706         <callback name="matrix">
707           <return-value transfer-ownership="none">
708             <type name="gint" c:type="int"/>
709           </return-value>
710           <parameters>
711             <parameter name="obj" transfer-ownership="none">
712               <type name="TestObj" c:type="RegressTestObj*"/>
713             </parameter>
714             <parameter name="somestr" transfer-ownership="none">
715               <doc xml:whitespace="preserve">Meaningless string</doc>
716               <type name="utf8" c:type="char*"/>
717             </parameter>
718           </parameters>
719         </callback>
720       </field>
721       <field name="test_signal">
722         <type name="guint" c:type="guint"/>
723       </field>
724       <field name="test_signal_with_static_scope_arg">
725         <type name="guint" c:type="guint"/>
726       </field>
727       <field name="_regress_reserved1" introspectable="0">
728         <callback name="_regress_reserved1">
729           <return-value transfer-ownership="none">
730             <type name="none" c:type="void"/>
731           </return-value>
732         </callback>
733       </field>
734       <field name="_regress_reserved2" introspectable="0">
735         <callback name="_regress_reserved2">
736           <return-value transfer-ownership="none">
737             <type name="none" c:type="void"/>
738           </return-value>
739         </callback>
740       </field>
741     </record>
742     <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
743       <member name="public_enum_before"
744               value="1"
745               c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE"/>
746       <member name="public_enum_after"
747               value="4"
748               c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER"/>
749     </bitfield>
750     <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
751       <field name="this_is_public_before" writable="1">
752         <type name="gint" c:type="gint"/>
753       </field>
754       <field name="this_is_private" readable="0" private="1">
755         <type name="gint" c:type="gint"/>
756       </field>
757       <field name="this_is_public_after" writable="1">
758         <type name="gint" c:type="gint"/>
759       </field>
760     </record>
761     <record name="TestSimpleBoxedA"
762             c:type="RegressTestSimpleBoxedA"
763             glib:type-name="RegressTestSimpleBoxedA"
764             glib:get-type="regress_test_simple_boxed_a_get_type"
765             c:symbol-prefix="test_simple_boxed_a">
766       <field name="some_int" writable="1">
767         <type name="gint" c:type="gint"/>
768       </field>
769       <field name="some_int8" writable="1">
770         <type name="gint8" c:type="gint8"/>
771       </field>
772       <field name="some_double" writable="1">
773         <type name="gdouble" c:type="gdouble"/>
774       </field>
775       <field name="some_enum" writable="1">
776         <type name="TestEnum" c:type="RegressTestEnum"/>
777       </field>
778       <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
779         <return-value transfer-ownership="full">
780           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
781         </return-value>
782       </method>
783       <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
784         <return-value transfer-ownership="none">
785           <type name="gboolean" c:type="gboolean"/>
786         </return-value>
787         <parameters>
788           <parameter name="other_a" transfer-ownership="none">
789             <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
790           </parameter>
791         </parameters>
792       </method>
793     </record>
794     <record name="TestSimpleBoxedB"
795             c:type="RegressTestSimpleBoxedB"
796             glib:type-name="RegressTestSimpleBoxedB"
797             glib:get-type="regress_test_simple_boxed_b_get_type"
798             c:symbol-prefix="test_simple_boxed_b">
799       <field name="some_int8" writable="1">
800         <type name="gint8" c:type="gint8"/>
801       </field>
802       <field name="nested_a" writable="1">
803         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
804       </field>
805       <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
806         <return-value transfer-ownership="full">
807           <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
808         </return-value>
809       </method>
810     </record>
811     <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
812       <return-value transfer-ownership="none">
813         <type name="none" c:type="void"/>
814       </return-value>
815     </callback>
816     <record name="TestStructA" c:type="RegressTestStructA">
817       <field name="some_int" writable="1">
818         <type name="gint" c:type="gint"/>
819       </field>
820       <field name="some_int8" writable="1">
821         <type name="gint8" c:type="gint8"/>
822       </field>
823       <field name="some_double" writable="1">
824         <type name="gdouble" c:type="gdouble"/>
825       </field>
826       <field name="some_enum" writable="1">
827         <type name="TestEnum" c:type="RegressTestEnum"/>
828       </field>
829       <method name="clone" c:identifier="regress_test_struct_a_clone">
830         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructA</doc>
831         <return-value transfer-ownership="none">
832           <type name="none" c:type="void"/>
833         </return-value>
834         <parameters>
835           <parameter name="a_out"
836                      direction="out"
837                      caller-allocates="1"
838                      transfer-ownership="none">
839             <doc xml:whitespace="preserve">the cloned structure</doc>
840             <type name="TestStructA" c:type="RegressTestStructA*"/>
841           </parameter>
842         </parameters>
843       </method>
844     </record>
845     <record name="TestStructB" c:type="RegressTestStructB">
846       <field name="some_int8" writable="1">
847         <type name="gint8" c:type="gint8"/>
848       </field>
849       <field name="nested_a" writable="1">
850         <type name="TestStructA" c:type="RegressTestStructA"/>
851       </field>
852       <method name="clone" c:identifier="regress_test_struct_b_clone">
853         <doc xml:whitespace="preserve">Make a copy of a RegressTestStructB</doc>
854         <return-value transfer-ownership="none">
855           <type name="none" c:type="void"/>
856         </return-value>
857         <parameters>
858           <parameter name="b_out"
859                      direction="out"
860                      caller-allocates="1"
861                      transfer-ownership="none">
862             <doc xml:whitespace="preserve">the cloned structure</doc>
863             <type name="TestStructB" c:type="RegressTestStructB*"/>
864           </parameter>
865         </parameters>
866       </method>
867     </record>
868     <class name="TestSubObj"
869            c:symbol-prefix="test_sub_obj"
870            c:type="RegressTestSubObj"
871            parent="TestObj"
872            glib:type-name="RegressTestSubObj"
873            glib:get-type="regress_test_sub_obj_get_type"
874            glib:type-struct="TestSubObjClass">
875       <constructor name="new" c:identifier="regress_test_sub_obj_new">
876         <return-value transfer-ownership="full">
877           <type name="TestObj" c:type="RegressTestObj*"/>
878         </return-value>
879       </constructor>
880       <method name="instance_method"
881               c:identifier="regress_test_sub_obj_instance_method">
882         <return-value transfer-ownership="none">
883           <type name="gint" c:type="int"/>
884         </return-value>
885       </method>
886       <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
887         <return-value transfer-ownership="none">
888           <type name="none" c:type="void"/>
889         </return-value>
890       </method>
891       <field name="parent_instance">
892         <type name="TestObj" c:type="RegressTestObj"/>
893       </field>
894     </class>
895     <record name="TestSubObjClass"
896             c:type="RegressTestSubObjClass"
897             glib:is-gtype-struct-for="TestSubObj">
898       <field name="parent_class">
899         <type name="TestObjClass" c:type="RegressTestObjClass"/>
900       </field>
901     </record>
902     <class name="TestWi8021x"
903            c:symbol-prefix="test_wi_802_1x"
904            c:type="RegressTestWi8021x"
905            parent="GObject.Object"
906            glib:type-name="RegressTestWi8021x"
907            glib:get-type="regress_test_wi_802_1x_get_type"
908            glib:type-struct="TestWi8021xClass">
909       <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
910         <return-value transfer-ownership="full">
911           <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
912         </return-value>
913       </constructor>
914       <function name="static_method"
915                 c:identifier="regress_test_wi_802_1x_static_method">
916         <return-value transfer-ownership="none">
917           <type name="gint" c:type="int"/>
918         </return-value>
919         <parameters>
920           <parameter name="x" transfer-ownership="none">
921             <type name="gint" c:type="int"/>
922           </parameter>
923         </parameters>
924       </function>
925       <method name="get_testbool"
926               c:identifier="regress_test_wi_802_1x_get_testbool">
927         <return-value transfer-ownership="none">
928           <type name="gboolean" c:type="gboolean"/>
929         </return-value>
930       </method>
931       <method name="set_testbool"
932               c:identifier="regress_test_wi_802_1x_set_testbool">
933         <return-value transfer-ownership="none">
934           <type name="none" c:type="void"/>
935         </return-value>
936         <parameters>
937           <parameter name="v" transfer-ownership="none">
938             <type name="gboolean" c:type="gboolean"/>
939           </parameter>
940         </parameters>
941       </method>
942       <property name="testbool" writable="1" transfer-ownership="none">
943         <type name="gboolean"/>
944       </property>
945       <field name="parent_instance">
946         <type name="GObject.Object" c:type="GObject"/>
947       </field>
948       <field name="testbool">
949         <type name="gboolean" c:type="gboolean"/>
950       </field>
951     </class>
952     <record name="TestWi8021xClass"
953             c:type="RegressTestWi8021xClass"
954             glib:is-gtype-struct-for="TestWi8021x">
955       <field name="parent_class">
956         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
957       </field>
958     </record>
959     <constant name="UTF8_CONSTANT" value="const â™¥ utf8">
960       <type name="utf8" c:type="gchar*"/>
961     </constant>
962     <record name="_TestStructC" c:type="_RegressTestStructC">
963       <field name="another_int" writable="1">
964         <type name="gint" c:type="gint"/>
965       </field>
966       <field name="obj" writable="1">
967         <type name="GObject.Object" c:type="GObject*"/>
968       </field>
969     </record>
970     <function name="aliased_caller_alloc"
971               c:identifier="regress_aliased_caller_alloc">
972       <return-value transfer-ownership="none">
973         <type name="none" c:type="void"/>
974       </return-value>
975       <parameters>
976         <parameter name="boxed"
977                    direction="out"
978                    caller-allocates="1"
979                    transfer-ownership="none">
980           <type name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed*"/>
981         </parameter>
982       </parameters>
983     </function>
984     <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
985       <return-value transfer-ownership="none">
986         <type name="none" c:type="void"/>
987       </return-value>
988       <parameters>
989         <parameter name="obj" transfer-ownership="none" allow-none="1">
990           <doc xml:whitespace="preserve">A #RegressTestObj</doc>
991           <type name="TestObj" c:type="RegressTestObj*"/>
992         </parameter>
993       </parameters>
994     </function>
995     <function name="global_get_flags_out"
996               c:identifier="regress_global_get_flags_out">
997       <return-value transfer-ownership="none">
998         <type name="none" c:type="void"/>
999       </return-value>
1000       <parameters>
1001         <parameter name="v"
1002                    direction="out"
1003                    caller-allocates="0"
1004                    transfer-ownership="full">
1005           <doc xml:whitespace="preserve">A flags value</doc>
1006           <type name="TestFlags" c:type="RegressTestFlags*"/>
1007         </parameter>
1008       </parameters>
1009     </function>
1010     <function name="introspectable_via_alias"
1011               c:identifier="regress_introspectable_via_alias">
1012       <return-value transfer-ownership="none">
1013         <type name="none" c:type="void"/>
1014       </return-value>
1015       <parameters>
1016         <parameter name="data" transfer-ownership="none">
1017           <type name="PtrArrayAlias" c:type="RegressPtrArrayAlias*"/>
1018         </parameter>
1019       </parameters>
1020     </function>
1021     <function name="not_introspectable_via_alias"
1022               c:identifier="regress_not_introspectable_via_alias"
1023               introspectable="0">
1024       <return-value transfer-ownership="none">
1025         <type name="none" c:type="void"/>
1026       </return-value>
1027       <parameters>
1028         <parameter name="ok" transfer-ownership="none">
1029           <type name="VaListAlias" c:type="RegressVaListAlias"/>
1030         </parameter>
1031       </parameters>
1032     </function>
1033     <function name="random_function_with_skipped_structure"
1034               c:identifier="regress_random_function_with_skipped_structure"
1035               introspectable="0">
1036       <return-value transfer-ownership="none">
1037         <type name="none" c:type="void"/>
1038       </return-value>
1039       <parameters>
1040         <parameter name="x" transfer-ownership="none">
1041           <type name="gint" c:type="int"/>
1042         </parameter>
1043         <parameter name="foo" transfer-ownership="none">
1044           <type name="SkippedStructure" c:type="RegressSkippedStructure*"/>
1045         </parameter>
1046         <parameter name="v" transfer-ownership="none">
1047           <type name="gdouble" c:type="double"/>
1048         </parameter>
1049       </parameters>
1050     </function>
1051     <function name="set_abort_on_error"
1052               c:identifier="regress_set_abort_on_error">
1053       <return-value transfer-ownership="none">
1054         <type name="none" c:type="void"/>
1055       </return-value>
1056       <parameters>
1057         <parameter name="abort_on_error" transfer-ownership="none">
1058           <type name="gboolean" c:type="gboolean"/>
1059         </parameter>
1060       </parameters>
1061     </function>
1062     <function name="test_array_fixed_size_int_in"
1063               c:identifier="regress_test_array_fixed_size_int_in">
1064       <return-value transfer-ownership="none">
1065         <doc xml:whitespace="preserve">the sum of the items in @ints</doc>
1066         <type name="gint" c:type="int"/>
1067       </return-value>
1068       <parameters>
1069         <parameter name="ints" transfer-ownership="none">
1070           <doc xml:whitespace="preserve">a list of 5 integers</doc>
1071           <array c:type="int*" fixed-size="5">
1072             <type name="gint"/>
1073           </array>
1074         </parameter>
1075       </parameters>
1076     </function>
1077     <function name="test_array_fixed_size_int_out"
1078               c:identifier="regress_test_array_fixed_size_int_out">
1079       <return-value transfer-ownership="none">
1080         <type name="none" c:type="void"/>
1081       </return-value>
1082       <parameters>
1083         <parameter name="ints"
1084                    direction="out"
1085                    caller-allocates="0"
1086                    transfer-ownership="full">
1087           <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
1088           <array c:type="int**" fixed-size="5">
1089             <type name="gint"/>
1090           </array>
1091         </parameter>
1092       </parameters>
1093     </function>
1094     <function name="test_array_fixed_size_int_return"
1095               c:identifier="regress_test_array_fixed_size_int_return">
1096       <return-value transfer-ownership="full">
1097         <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
1098         <array c:type="int*" fixed-size="5">
1099           <type name="gint"/>
1100         </array>
1101       </return-value>
1102     </function>
1103     <function name="test_array_gint16_in"
1104               c:identifier="regress_test_array_gint16_in">
1105       <return-value transfer-ownership="none">
1106         <type name="gint" c:type="int"/>
1107       </return-value>
1108       <parameters>
1109         <parameter name="n_ints" transfer-ownership="none">
1110           <type name="gint" c:type="int"/>
1111         </parameter>
1112         <parameter name="ints" transfer-ownership="none">
1113           <doc xml:whitespace="preserve">List of ints</doc>
1114           <array length="0" c:type="gint16*">
1115             <type name="gint16"/>
1116           </array>
1117         </parameter>
1118       </parameters>
1119     </function>
1120     <function name="test_array_gint32_in"
1121               c:identifier="regress_test_array_gint32_in">
1122       <return-value transfer-ownership="none">
1123         <type name="gint32" c:type="gint32"/>
1124       </return-value>
1125       <parameters>
1126         <parameter name="n_ints" transfer-ownership="none">
1127           <type name="gint" c:type="int"/>
1128         </parameter>
1129         <parameter name="ints" transfer-ownership="none">
1130           <doc xml:whitespace="preserve">List of ints</doc>
1131           <array length="0" c:type="gint32*">
1132             <type name="gint32"/>
1133           </array>
1134         </parameter>
1135       </parameters>
1136     </function>
1137     <function name="test_array_gint64_in"
1138               c:identifier="regress_test_array_gint64_in">
1139       <return-value transfer-ownership="none">
1140         <type name="gint64" c:type="gint64"/>
1141       </return-value>
1142       <parameters>
1143         <parameter name="n_ints" transfer-ownership="none">
1144           <type name="gint" c:type="int"/>
1145         </parameter>
1146         <parameter name="ints" transfer-ownership="none">
1147           <doc xml:whitespace="preserve">List of ints</doc>
1148           <array length="0" c:type="gint64*">
1149             <type name="gint64"/>
1150           </array>
1151         </parameter>
1152       </parameters>
1153     </function>
1154     <function name="test_array_gint8_in"
1155               c:identifier="regress_test_array_gint8_in">
1156       <return-value transfer-ownership="none">
1157         <type name="gint" c:type="int"/>
1158       </return-value>
1159       <parameters>
1160         <parameter name="n_ints" transfer-ownership="none">
1161           <type name="gint" c:type="int"/>
1162         </parameter>
1163         <parameter name="ints" transfer-ownership="none">
1164           <doc xml:whitespace="preserve">List of ints</doc>
1165           <array length="0" c:type="gint8*">
1166             <type name="gint8"/>
1167           </array>
1168         </parameter>
1169       </parameters>
1170     </function>
1171     <function name="test_array_gtype_in"
1172               c:identifier="regress_test_array_gtype_in">
1173       <return-value transfer-ownership="full">
1174         <doc xml:whitespace="preserve">string representation of provided types</doc>
1175         <type name="utf8" c:type="char*"/>
1176       </return-value>
1177       <parameters>
1178         <parameter name="n_types" transfer-ownership="none">
1179           <type name="gint" c:type="int"/>
1180         </parameter>
1181         <parameter name="types" transfer-ownership="none">
1182           <doc xml:whitespace="preserve">List of types</doc>
1183           <array length="0" c:type="GType*">
1184             <type name="GType"/>
1185           </array>
1186         </parameter>
1187       </parameters>
1188     </function>
1189     <function name="test_array_int_full_out"
1190               c:identifier="regress_test_array_int_full_out">
1191       <return-value transfer-ownership="full">
1192         <doc xml:whitespace="preserve">a new array of integers.</doc>
1193         <array length="0" c:type="int*">
1194           <type name="gint"/>
1195         </array>
1196       </return-value>
1197       <parameters>
1198         <parameter name="len"
1199                    direction="out"
1200                    caller-allocates="0"
1201                    transfer-ownership="full">
1202           <doc xml:whitespace="preserve">length of the returned array.</doc>
1203           <type name="gint" c:type="int*"/>
1204         </parameter>
1205       </parameters>
1206     </function>
1207     <function name="test_array_int_in"
1208               c:identifier="regress_test_array_int_in">
1209       <return-value transfer-ownership="none">
1210         <type name="gint" c:type="int"/>
1211       </return-value>
1212       <parameters>
1213         <parameter name="n_ints" transfer-ownership="none">
1214           <type name="gint" c:type="int"/>
1215         </parameter>
1216         <parameter name="ints" transfer-ownership="none">
1217           <doc xml:whitespace="preserve">List of ints</doc>
1218           <array length="0" c:type="int*">
1219             <type name="gint"/>
1220           </array>
1221         </parameter>
1222       </parameters>
1223     </function>
1224     <function name="test_array_int_inout"
1225               c:identifier="regress_test_array_int_inout">
1226       <return-value transfer-ownership="none">
1227         <type name="none" c:type="void"/>
1228       </return-value>
1229       <parameters>
1230         <parameter name="n_ints"
1231                    direction="inout"
1232                    caller-allocates="0"
1233                    transfer-ownership="full">
1234           <doc xml:whitespace="preserve">the length of @ints</doc>
1235           <type name="gint" c:type="int*"/>
1236         </parameter>
1237         <parameter name="ints"
1238                    direction="inout"
1239                    caller-allocates="0"
1240                    transfer-ownership="full">
1241           <doc xml:whitespace="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
1242           <array length="0" c:type="int**">
1243             <type name="gint"/>
1244           </array>
1245         </parameter>
1246       </parameters>
1247     </function>
1248     <function name="test_array_int_none_out"
1249               c:identifier="regress_test_array_int_none_out">
1250       <return-value transfer-ownership="none">
1251         <doc xml:whitespace="preserve">a static array of integers.</doc>
1252         <array length="0" c:type="int*">
1253           <type name="gint"/>
1254         </array>
1255       </return-value>
1256       <parameters>
1257         <parameter name="len"
1258                    direction="out"
1259                    caller-allocates="0"
1260                    transfer-ownership="full">
1261           <doc xml:whitespace="preserve">length of the returned array.</doc>
1262           <type name="gint" c:type="int*"/>
1263         </parameter>
1264       </parameters>
1265     </function>
1266     <function name="test_array_int_null_in"
1267               c:identifier="regress_test_array_int_null_in">
1268       <return-value transfer-ownership="none">
1269         <type name="none" c:type="void"/>
1270       </return-value>
1271       <parameters>
1272         <parameter name="arr" transfer-ownership="none" allow-none="1">
1273           <array length="1" c:type="int*">
1274             <type name="gint"/>
1275           </array>
1276         </parameter>
1277         <parameter name="len" transfer-ownership="none">
1278           <doc xml:whitespace="preserve">length</doc>
1279           <type name="gint" c:type="int"/>
1280         </parameter>
1281       </parameters>
1282     </function>
1283     <function name="test_array_int_null_out"
1284               c:identifier="regress_test_array_int_null_out">
1285       <return-value transfer-ownership="none">
1286         <type name="none" c:type="void"/>
1287       </return-value>
1288       <parameters>
1289         <parameter name="arr"
1290                    direction="out"
1291                    caller-allocates="0"
1292                    transfer-ownership="full"
1293                    allow-none="1">
1294           <array length="1" c:type="int**">
1295             <type name="gint"/>
1296           </array>
1297         </parameter>
1298         <parameter name="len"
1299                    direction="out"
1300                    caller-allocates="0"
1301                    transfer-ownership="full">
1302           <doc xml:whitespace="preserve">length</doc>
1303           <type name="gint" c:type="int*"/>
1304         </parameter>
1305       </parameters>
1306     </function>
1307     <function name="test_array_int_out"
1308               c:identifier="regress_test_array_int_out">
1309       <return-value transfer-ownership="none">
1310         <type name="none" c:type="void"/>
1311       </return-value>
1312       <parameters>
1313         <parameter name="n_ints"
1314                    direction="out"
1315                    caller-allocates="0"
1316                    transfer-ownership="full">
1317           <doc xml:whitespace="preserve">the length of @ints</doc>
1318           <type name="gint" c:type="int*"/>
1319         </parameter>
1320         <parameter name="ints"
1321                    direction="out"
1322                    caller-allocates="0"
1323                    transfer-ownership="full">
1324           <doc xml:whitespace="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
1325           <array length="0" c:type="int**">
1326             <type name="gint"/>
1327           </array>
1328         </parameter>
1329       </parameters>
1330     </function>
1331     <function name="test_async_ready_callback"
1332               c:identifier="regress_test_async_ready_callback">
1333       <return-value transfer-ownership="none">
1334         <type name="none" c:type="void"/>
1335       </return-value>
1336       <parameters>
1337         <parameter name="callback" transfer-ownership="none" scope="async">
1338           <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1339         </parameter>
1340       </parameters>
1341     </function>
1342     <function name="test_boolean" c:identifier="regress_test_boolean">
1343       <return-value transfer-ownership="none">
1344         <type name="gboolean" c:type="gboolean"/>
1345       </return-value>
1346       <parameters>
1347         <parameter name="in" transfer-ownership="none">
1348           <type name="gboolean" c:type="gboolean"/>
1349         </parameter>
1350       </parameters>
1351     </function>
1352     <function name="test_boolean_false"
1353               c:identifier="regress_test_boolean_false">
1354       <return-value transfer-ownership="none">
1355         <type name="gboolean" c:type="gboolean"/>
1356       </return-value>
1357       <parameters>
1358         <parameter name="in" transfer-ownership="none">
1359           <type name="gboolean" c:type="gboolean"/>
1360         </parameter>
1361       </parameters>
1362     </function>
1363     <function name="test_boolean_true"
1364               c:identifier="regress_test_boolean_true">
1365       <return-value transfer-ownership="none">
1366         <type name="gboolean" c:type="gboolean"/>
1367       </return-value>
1368       <parameters>
1369         <parameter name="in" transfer-ownership="none">
1370           <type name="gboolean" c:type="gboolean"/>
1371         </parameter>
1372       </parameters>
1373     </function>
1374     <function name="test_cairo_context_full_return"
1375               c:identifier="regress_test_cairo_context_full_return">
1376       <return-value transfer-ownership="full">
1377         <type name="cairo.Context" c:type="cairo_t*"/>
1378       </return-value>
1379     </function>
1380     <function name="test_cairo_context_none_in"
1381               c:identifier="regress_test_cairo_context_none_in">
1382       <return-value transfer-ownership="none">
1383         <type name="none" c:type="void"/>
1384       </return-value>
1385       <parameters>
1386         <parameter name="context" transfer-ownership="none">
1387           <type name="cairo.Context" c:type="cairo_t*"/>
1388         </parameter>
1389       </parameters>
1390     </function>
1391     <function name="test_cairo_surface_full_out"
1392               c:identifier="regress_test_cairo_surface_full_out">
1393       <return-value transfer-ownership="none">
1394         <type name="none" c:type="void"/>
1395       </return-value>
1396       <parameters>
1397         <parameter name="surface"
1398                    direction="out"
1399                    caller-allocates="0"
1400                    transfer-ownership="full">
1401           <type name="cairo.Surface" c:type="cairo_surface_t**"/>
1402         </parameter>
1403       </parameters>
1404     </function>
1405     <function name="test_cairo_surface_full_return"
1406               c:identifier="regress_test_cairo_surface_full_return">
1407       <return-value transfer-ownership="full">
1408         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1409       </return-value>
1410     </function>
1411     <function name="test_cairo_surface_none_in"
1412               c:identifier="regress_test_cairo_surface_none_in">
1413       <return-value transfer-ownership="none">
1414         <type name="none" c:type="void"/>
1415       </return-value>
1416       <parameters>
1417         <parameter name="surface" transfer-ownership="none">
1418           <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1419         </parameter>
1420       </parameters>
1421     </function>
1422     <function name="test_cairo_surface_none_return"
1423               c:identifier="regress_test_cairo_surface_none_return">
1424       <return-value transfer-ownership="none">
1425         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
1426       </return-value>
1427     </function>
1428     <function name="test_callback" c:identifier="regress_test_callback">
1429       <return-value transfer-ownership="none">
1430         <type name="gint" c:type="int"/>
1431       </return-value>
1432       <parameters>
1433         <parameter name="callback"
1434                    transfer-ownership="none"
1435                    allow-none="1"
1436                    scope="call">
1437           <type name="TestCallback" c:type="RegressTestCallback"/>
1438         </parameter>
1439       </parameters>
1440     </function>
1441     <function name="test_callback_async"
1442               c:identifier="regress_test_callback_async">
1443       <return-value transfer-ownership="none">
1444         <type name="none" c:type="void"/>
1445       </return-value>
1446       <parameters>
1447         <parameter name="callback"
1448                    transfer-ownership="none"
1449                    scope="async"
1450                    closure="1">
1451           <type name="TestCallbackUserData"
1452                 c:type="RegressTestCallbackUserData"/>
1453         </parameter>
1454         <parameter name="user_data" transfer-ownership="none">
1455           <type name="gpointer" c:type="gpointer"/>
1456         </parameter>
1457       </parameters>
1458     </function>
1459     <function name="test_callback_destroy_notify"
1460               c:identifier="regress_test_callback_destroy_notify">
1461       <doc xml:whitespace="preserve">Notified - callback persists until a DestroyNotify delegate
1462 is invoked.</doc>
1463       <return-value transfer-ownership="none">
1464         <type name="gint" c:type="int"/>
1465       </return-value>
1466       <parameters>
1467         <parameter name="callback"
1468                    transfer-ownership="none"
1469                    scope="notified"
1470                    closure="1"
1471                    destroy="2">
1472           <type name="TestCallbackUserData"
1473                 c:type="RegressTestCallbackUserData"/>
1474         </parameter>
1475         <parameter name="user_data" transfer-ownership="none">
1476           <type name="gpointer" c:type="gpointer"/>
1477         </parameter>
1478         <parameter name="notify" transfer-ownership="none" scope="async">
1479           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1480         </parameter>
1481       </parameters>
1482     </function>
1483     <function name="test_callback_thaw_async"
1484               c:identifier="regress_test_callback_thaw_async">
1485       <return-value transfer-ownership="none">
1486         <type name="gint" c:type="int"/>
1487       </return-value>
1488     </function>
1489     <function name="test_callback_thaw_notifications"
1490               c:identifier="regress_test_callback_thaw_notifications">
1491       <doc xml:whitespace="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
1492 adding up their return values, and removes them, invoking the
1493 corresponding destroy notfications.</doc>
1494       <return-value transfer-ownership="none">
1495         <doc xml:whitespace="preserve">Sum of the return values of the invoked callbacks.</doc>
1496         <type name="gint" c:type="int"/>
1497       </return-value>
1498     </function>
1499     <function name="test_callback_user_data"
1500               c:identifier="regress_test_callback_user_data">
1501       <doc xml:whitespace="preserve">Call - callback parameter persists for the duration of the method
1502 call and can be released on return.</doc>
1503       <return-value transfer-ownership="none">
1504         <type name="gint" c:type="int"/>
1505       </return-value>
1506       <parameters>
1507         <parameter name="callback"
1508                    transfer-ownership="none"
1509                    scope="call"
1510                    closure="1">
1511           <type name="TestCallbackUserData"
1512                 c:type="RegressTestCallbackUserData"/>
1513         </parameter>
1514         <parameter name="user_data" transfer-ownership="none">
1515           <type name="gpointer" c:type="gpointer"/>
1516         </parameter>
1517       </parameters>
1518     </function>
1519     <function name="test_closure" c:identifier="regress_test_closure">
1520       <return-value transfer-ownership="none">
1521         <type name="gint" c:type="int"/>
1522       </return-value>
1523       <parameters>
1524         <parameter name="closure" transfer-ownership="none">
1525           <type name="GObject.Closure" c:type="GClosure*"/>
1526         </parameter>
1527       </parameters>
1528     </function>
1529     <function name="test_closure_one_arg"
1530               c:identifier="regress_test_closure_one_arg">
1531       <return-value transfer-ownership="none">
1532         <type name="gint" c:type="int"/>
1533       </return-value>
1534       <parameters>
1535         <parameter name="closure" transfer-ownership="none">
1536           <type name="GObject.Closure" c:type="GClosure*"/>
1537         </parameter>
1538         <parameter name="arg" transfer-ownership="none">
1539           <type name="gint" c:type="int"/>
1540         </parameter>
1541       </parameters>
1542     </function>
1543     <function name="test_date_in_gvalue"
1544               c:identifier="regress_test_date_in_gvalue">
1545       <return-value transfer-ownership="full">
1546         <type name="GObject.Value" c:type="GValue*"/>
1547       </return-value>
1548     </function>
1549     <function name="test_double" c:identifier="regress_test_double">
1550       <return-value transfer-ownership="none">
1551         <type name="gdouble" c:type="gdouble"/>
1552       </return-value>
1553       <parameters>
1554         <parameter name="in" transfer-ownership="none">
1555           <type name="gdouble" c:type="gdouble"/>
1556         </parameter>
1557       </parameters>
1558     </function>
1559     <function name="test_enum_param" c:identifier="regress_test_enum_param">
1560       <return-value transfer-ownership="none">
1561         <type name="utf8" c:type="gchar*"/>
1562       </return-value>
1563       <parameters>
1564         <parameter name="e" transfer-ownership="none">
1565           <type name="TestEnum" c:type="RegressTestEnum"/>
1566         </parameter>
1567       </parameters>
1568     </function>
1569     <function name="test_filename_return"
1570               c:identifier="regress_test_filename_return">
1571       <return-value transfer-ownership="full">
1572         <doc xml:whitespace="preserve">list of strings</doc>
1573         <type name="GLib.SList" c:type="GSList*">
1574           <type name="filename"/>
1575         </type>
1576       </return-value>
1577     </function>
1578     <function name="test_float" c:identifier="regress_test_float">
1579       <return-value transfer-ownership="none">
1580         <type name="gfloat" c:type="gfloat"/>
1581       </return-value>
1582       <parameters>
1583         <parameter name="in" transfer-ownership="none">
1584           <type name="gfloat" c:type="gfloat"/>
1585         </parameter>
1586       </parameters>
1587     </function>
1588     <function name="test_ghash_container_return"
1589               c:identifier="regress_test_ghash_container_return">
1590       <return-value transfer-ownership="container">
1591         <type name="GLib.HashTable" c:type="GHashTable*">
1592           <type name="utf8"/>
1593           <type name="utf8"/>
1594         </type>
1595       </return-value>
1596     </function>
1597     <function name="test_ghash_everything_return"
1598               c:identifier="regress_test_ghash_everything_return">
1599       <return-value transfer-ownership="full">
1600         <type name="GLib.HashTable" c:type="GHashTable*">
1601           <type name="utf8"/>
1602           <type name="utf8"/>
1603         </type>
1604       </return-value>
1605     </function>
1606     <function name="test_ghash_nested_everything_return"
1607               c:identifier="regress_test_ghash_nested_everything_return">
1608       <doc xml:whitespace="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
1609       <return-value transfer-ownership="full">
1610         <type name="GLib.HashTable">
1611           <type name="utf8"/>
1612           <type name="GLib.HashTable">
1613             <type name="utf8"/>
1614             <type name="utf8"/>
1615           </type>
1616         </type>
1617       </return-value>
1618     </function>
1619     <function name="test_ghash_nested_everything_return2"
1620               c:identifier="regress_test_ghash_nested_everything_return2">
1621       <doc xml:whitespace="preserve">element-type annotation.</doc>
1622       <return-value transfer-ownership="full">
1623         <type name="GLib.HashTable" c:type="GHashTable*">
1624           <type name="utf8"/>
1625           <type name="GLib.HashTable">
1626             <type name="utf8"/>
1627             <type name="utf8"/>
1628           </type>
1629         </type>
1630       </return-value>
1631     </function>
1632     <function name="test_ghash_nothing_in"
1633               c:identifier="regress_test_ghash_nothing_in">
1634       <return-value transfer-ownership="none">
1635         <type name="none" c:type="void"/>
1636       </return-value>
1637       <parameters>
1638         <parameter name="in" transfer-ownership="none">
1639           <type name="GLib.HashTable" c:type="GHashTable*">
1640             <type name="utf8"/>
1641             <type name="utf8"/>
1642           </type>
1643         </parameter>
1644       </parameters>
1645     </function>
1646     <function name="test_ghash_nothing_in2"
1647               c:identifier="regress_test_ghash_nothing_in2">
1648       <return-value transfer-ownership="none">
1649         <type name="none" c:type="void"/>
1650       </return-value>
1651       <parameters>
1652         <parameter name="in" transfer-ownership="none">
1653           <type name="GLib.HashTable" c:type="GHashTable*">
1654             <type name="utf8"/>
1655             <type name="utf8"/>
1656           </type>
1657         </parameter>
1658       </parameters>
1659     </function>
1660     <function name="test_ghash_nothing_return"
1661               c:identifier="regress_test_ghash_nothing_return">
1662       <return-value transfer-ownership="none">
1663         <type name="GLib.HashTable" c:type="GHashTable*">
1664           <type name="utf8"/>
1665           <type name="utf8"/>
1666         </type>
1667       </return-value>
1668     </function>
1669     <function name="test_ghash_nothing_return2"
1670               c:identifier="regress_test_ghash_nothing_return2">
1671       <return-value transfer-ownership="none">
1672         <type name="GLib.HashTable" c:type="GHashTable*">
1673           <type name="utf8"/>
1674           <type name="utf8"/>
1675         </type>
1676       </return-value>
1677     </function>
1678     <function name="test_ghash_null_in"
1679               c:identifier="regress_test_ghash_null_in">
1680       <return-value transfer-ownership="none">
1681         <type name="none" c:type="void"/>
1682       </return-value>
1683       <parameters>
1684         <parameter name="in" transfer-ownership="none" allow-none="1">
1685           <type name="GLib.HashTable" c:type="GHashTable*">
1686             <type name="utf8"/>
1687             <type name="utf8"/>
1688           </type>
1689         </parameter>
1690       </parameters>
1691     </function>
1692     <function name="test_ghash_null_out"
1693               c:identifier="regress_test_ghash_null_out">
1694       <return-value transfer-ownership="none">
1695         <type name="none" c:type="void"/>
1696       </return-value>
1697       <parameters>
1698         <parameter name="out"
1699                    direction="out"
1700                    caller-allocates="0"
1701                    transfer-ownership="full"
1702                    allow-none="1">
1703           <type name="GLib.HashTable" c:type="GHashTable**">
1704             <type name="utf8"/>
1705             <type name="utf8"/>
1706           </type>
1707         </parameter>
1708       </parameters>
1709     </function>
1710     <function name="test_ghash_null_return"
1711               c:identifier="regress_test_ghash_null_return">
1712       <return-value transfer-ownership="none">
1713         <type name="GLib.HashTable" c:type="GHashTable*">
1714           <type name="utf8"/>
1715           <type name="utf8"/>
1716         </type>
1717       </return-value>
1718     </function>
1719     <function name="test_glist_container_return"
1720               c:identifier="regress_test_glist_container_return">
1721       <return-value transfer-ownership="container">
1722         <type name="GLib.List" c:type="GList*">
1723           <type name="utf8"/>
1724         </type>
1725       </return-value>
1726     </function>
1727     <function name="test_glist_everything_return"
1728               c:identifier="regress_test_glist_everything_return">
1729       <return-value transfer-ownership="full">
1730         <type name="GLib.List" c:type="GList*">
1731           <type name="utf8"/>
1732         </type>
1733       </return-value>
1734     </function>
1735     <function name="test_glist_nothing_in"
1736               c:identifier="regress_test_glist_nothing_in">
1737       <return-value transfer-ownership="none">
1738         <type name="none" c:type="void"/>
1739       </return-value>
1740       <parameters>
1741         <parameter name="in" transfer-ownership="none">
1742           <type name="GLib.List" c:type="GList*">
1743             <type name="utf8"/>
1744           </type>
1745         </parameter>
1746       </parameters>
1747     </function>
1748     <function name="test_glist_nothing_in2"
1749               c:identifier="regress_test_glist_nothing_in2">
1750       <return-value transfer-ownership="none">
1751         <type name="none" c:type="void"/>
1752       </return-value>
1753       <parameters>
1754         <parameter name="in" transfer-ownership="none">
1755           <type name="GLib.List" c:type="GList*">
1756             <type name="utf8"/>
1757           </type>
1758         </parameter>
1759       </parameters>
1760     </function>
1761     <function name="test_glist_nothing_return"
1762               c:identifier="regress_test_glist_nothing_return">
1763       <return-value transfer-ownership="none">
1764         <type name="GLib.List" c:type="GList*">
1765           <type name="utf8"/>
1766         </type>
1767       </return-value>
1768     </function>
1769     <function name="test_glist_nothing_return2"
1770               c:identifier="regress_test_glist_nothing_return2">
1771       <return-value transfer-ownership="none">
1772         <type name="GLib.List" c:type="GList*">
1773           <type name="utf8"/>
1774         </type>
1775       </return-value>
1776     </function>
1777     <function name="test_glist_null_in"
1778               c:identifier="regress_test_glist_null_in">
1779       <return-value transfer-ownership="none">
1780         <type name="none" c:type="void"/>
1781       </return-value>
1782       <parameters>
1783         <parameter name="in" transfer-ownership="none" allow-none="1">
1784           <type name="GLib.SList" c:type="GSList*">
1785             <type name="utf8"/>
1786           </type>
1787         </parameter>
1788       </parameters>
1789     </function>
1790     <function name="test_glist_null_out"
1791               c:identifier="regress_test_glist_null_out">
1792       <return-value transfer-ownership="none">
1793         <type name="none" c:type="void"/>
1794       </return-value>
1795       <parameters>
1796         <parameter name="out_list"
1797                    direction="out"
1798                    caller-allocates="0"
1799                    transfer-ownership="full"
1800                    allow-none="1">
1801           <type name="GLib.SList" c:type="GSList**">
1802             <type name="utf8"/>
1803           </type>
1804         </parameter>
1805       </parameters>
1806     </function>
1807     <function name="test_gslist_container_return"
1808               c:identifier="regress_test_gslist_container_return">
1809       <return-value transfer-ownership="container">
1810         <type name="GLib.SList" c:type="GSList*">
1811           <type name="utf8"/>
1812         </type>
1813       </return-value>
1814     </function>
1815     <function name="test_gslist_everything_return"
1816               c:identifier="regress_test_gslist_everything_return">
1817       <return-value transfer-ownership="full">
1818         <type name="GLib.SList" c:type="GSList*">
1819           <type name="utf8"/>
1820         </type>
1821       </return-value>
1822     </function>
1823     <function name="test_gslist_nothing_in"
1824               c:identifier="regress_test_gslist_nothing_in">
1825       <return-value transfer-ownership="none">
1826         <type name="none" c:type="void"/>
1827       </return-value>
1828       <parameters>
1829         <parameter name="in" transfer-ownership="none">
1830           <type name="GLib.SList" c:type="GSList*">
1831             <type name="utf8"/>
1832           </type>
1833         </parameter>
1834       </parameters>
1835     </function>
1836     <function name="test_gslist_nothing_in2"
1837               c:identifier="regress_test_gslist_nothing_in2">
1838       <return-value transfer-ownership="none">
1839         <type name="none" c:type="void"/>
1840       </return-value>
1841       <parameters>
1842         <parameter name="in" transfer-ownership="none">
1843           <type name="GLib.SList" c:type="GSList*">
1844             <type name="utf8"/>
1845           </type>
1846         </parameter>
1847       </parameters>
1848     </function>
1849     <function name="test_gslist_nothing_return"
1850               c:identifier="regress_test_gslist_nothing_return">
1851       <return-value transfer-ownership="none">
1852         <type name="GLib.SList" c:type="GSList*">
1853           <type name="utf8"/>
1854         </type>
1855       </return-value>
1856     </function>
1857     <function name="test_gslist_nothing_return2"
1858               c:identifier="regress_test_gslist_nothing_return2">
1859       <return-value transfer-ownership="none">
1860         <type name="GLib.SList" c:type="GSList*">
1861           <type name="utf8"/>
1862         </type>
1863       </return-value>
1864     </function>
1865     <function name="test_gslist_null_in"
1866               c:identifier="regress_test_gslist_null_in">
1867       <return-value transfer-ownership="none">
1868         <type name="none" c:type="void"/>
1869       </return-value>
1870       <parameters>
1871         <parameter name="in" transfer-ownership="none" allow-none="1">
1872           <type name="GLib.SList" c:type="GSList*">
1873             <type name="utf8"/>
1874           </type>
1875         </parameter>
1876       </parameters>
1877     </function>
1878     <function name="test_gslist_null_out"
1879               c:identifier="regress_test_gslist_null_out">
1880       <return-value transfer-ownership="none">
1881         <type name="none" c:type="void"/>
1882       </return-value>
1883       <parameters>
1884         <parameter name="out_list"
1885                    direction="out"
1886                    caller-allocates="0"
1887                    transfer-ownership="full"
1888                    allow-none="1">
1889           <type name="GLib.SList" c:type="GSList**">
1890             <type name="utf8"/>
1891           </type>
1892         </parameter>
1893       </parameters>
1894     </function>
1895     <function name="test_gtype" c:identifier="regress_test_gtype">
1896       <return-value transfer-ownership="none">
1897         <type name="GType" c:type="GType"/>
1898       </return-value>
1899       <parameters>
1900         <parameter name="in" transfer-ownership="none">
1901           <type name="GType" c:type="GType"/>
1902         </parameter>
1903       </parameters>
1904     </function>
1905     <function name="test_int" c:identifier="regress_test_int">
1906       <return-value transfer-ownership="none">
1907         <type name="gint" c:type="gint"/>
1908       </return-value>
1909       <parameters>
1910         <parameter name="in" transfer-ownership="none">
1911           <type name="gint" c:type="gint"/>
1912         </parameter>
1913       </parameters>
1914     </function>
1915     <function name="test_int16" c:identifier="regress_test_int16">
1916       <return-value transfer-ownership="none">
1917         <type name="gint16" c:type="gint16"/>
1918       </return-value>
1919       <parameters>
1920         <parameter name="in" transfer-ownership="none">
1921           <type name="gint16" c:type="gint16"/>
1922         </parameter>
1923       </parameters>
1924     </function>
1925     <function name="test_int32" c:identifier="regress_test_int32">
1926       <return-value transfer-ownership="none">
1927         <type name="gint32" c:type="gint32"/>
1928       </return-value>
1929       <parameters>
1930         <parameter name="in" transfer-ownership="none">
1931           <type name="gint32" c:type="gint32"/>
1932         </parameter>
1933       </parameters>
1934     </function>
1935     <function name="test_int64" c:identifier="regress_test_int64">
1936       <return-value transfer-ownership="none">
1937         <type name="gint64" c:type="gint64"/>
1938       </return-value>
1939       <parameters>
1940         <parameter name="in" transfer-ownership="none">
1941           <type name="gint64" c:type="gint64"/>
1942         </parameter>
1943       </parameters>
1944     </function>
1945     <function name="test_int8" c:identifier="regress_test_int8">
1946       <return-value transfer-ownership="none">
1947         <type name="gint8" c:type="gint8"/>
1948       </return-value>
1949       <parameters>
1950         <parameter name="in" transfer-ownership="none">
1951           <type name="gint8" c:type="gint8"/>
1952         </parameter>
1953       </parameters>
1954     </function>
1955     <function name="test_int_out_utf8"
1956               c:identifier="regress_test_int_out_utf8">
1957       <return-value transfer-ownership="none">
1958         <type name="none" c:type="void"/>
1959       </return-value>
1960       <parameters>
1961         <parameter name="length"
1962                    direction="out"
1963                    caller-allocates="0"
1964                    transfer-ownership="full">
1965           <type name="gint" c:type="int*"/>
1966         </parameter>
1967         <parameter name="in" transfer-ownership="none">
1968           <type name="utf8" c:type="char*"/>
1969         </parameter>
1970       </parameters>
1971     </function>
1972     <function name="test_int_value_arg"
1973               c:identifier="regress_test_int_value_arg">
1974       <return-value transfer-ownership="none">
1975         <type name="gint" c:type="int"/>
1976       </return-value>
1977       <parameters>
1978         <parameter name="v" transfer-ownership="none">
1979           <type name="GObject.Value" c:type="GValue*"/>
1980         </parameter>
1981       </parameters>
1982     </function>
1983     <function name="test_long" c:identifier="regress_test_long">
1984       <return-value transfer-ownership="none">
1985         <type name="glong" c:type="glong"/>
1986       </return-value>
1987       <parameters>
1988         <parameter name="in" transfer-ownership="none">
1989           <type name="glong" c:type="glong"/>
1990         </parameter>
1991       </parameters>
1992     </function>
1993     <function name="test_multi_callback"
1994               c:identifier="regress_test_multi_callback">
1995       <return-value transfer-ownership="none">
1996         <type name="gint" c:type="int"/>
1997       </return-value>
1998       <parameters>
1999         <parameter name="callback"
2000                    transfer-ownership="none"
2001                    allow-none="1"
2002                    scope="call">
2003           <type name="TestCallback" c:type="RegressTestCallback"/>
2004         </parameter>
2005       </parameters>
2006     </function>
2007     <function name="test_multi_double_args"
2008               c:identifier="regress_test_multi_double_args">
2009       <return-value transfer-ownership="none">
2010         <type name="none" c:type="void"/>
2011       </return-value>
2012       <parameters>
2013         <parameter name="in" transfer-ownership="none">
2014           <type name="gdouble" c:type="gdouble"/>
2015         </parameter>
2016         <parameter name="one"
2017                    direction="out"
2018                    caller-allocates="0"
2019                    transfer-ownership="full">
2020           <type name="gdouble" c:type="gdouble*"/>
2021         </parameter>
2022         <parameter name="two"
2023                    direction="out"
2024                    caller-allocates="0"
2025                    transfer-ownership="full">
2026           <type name="gdouble" c:type="gdouble*"/>
2027         </parameter>
2028       </parameters>
2029     </function>
2030     <function name="test_short" c:identifier="regress_test_short">
2031       <return-value transfer-ownership="none">
2032         <type name="gshort" c:type="gshort"/>
2033       </return-value>
2034       <parameters>
2035         <parameter name="in" transfer-ownership="none">
2036           <type name="gshort" c:type="gshort"/>
2037         </parameter>
2038       </parameters>
2039     </function>
2040     <function name="test_simple_boxed_a_const_return"
2041               c:identifier="regress_test_simple_boxed_a_const_return">
2042       <return-value transfer-ownership="none">
2043         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
2044       </return-value>
2045     </function>
2046     <function name="test_simple_callback"
2047               c:identifier="regress_test_simple_callback">
2048       <return-value transfer-ownership="none">
2049         <type name="none" c:type="void"/>
2050       </return-value>
2051       <parameters>
2052         <parameter name="callback"
2053                    transfer-ownership="none"
2054                    allow-none="1"
2055                    scope="call">
2056           <type name="TestSimpleCallback" c:type="RegressTestSimpleCallback"/>
2057         </parameter>
2058       </parameters>
2059     </function>
2060     <function name="test_size" c:identifier="regress_test_size">
2061       <return-value transfer-ownership="none">
2062         <type name="gsize" c:type="gsize"/>
2063       </return-value>
2064       <parameters>
2065         <parameter name="in" transfer-ownership="none">
2066           <type name="gsize" c:type="gsize"/>
2067         </parameter>
2068       </parameters>
2069     </function>
2070     <function name="test_ssize" c:identifier="regress_test_ssize">
2071       <return-value transfer-ownership="none">
2072         <type name="gssize" c:type="gssize"/>
2073       </return-value>
2074       <parameters>
2075         <parameter name="in" transfer-ownership="none">
2076           <type name="gssize" c:type="gssize"/>
2077         </parameter>
2078       </parameters>
2079     </function>
2080     <function name="test_strv_in" c:identifier="regress_test_strv_in">
2081       <return-value transfer-ownership="none">
2082         <type name="gboolean" c:type="gboolean"/>
2083       </return-value>
2084       <parameters>
2085         <parameter name="arr" transfer-ownership="none">
2086           <array c:type="char**">
2087             <type name="utf8"/>
2088           </array>
2089         </parameter>
2090       </parameters>
2091     </function>
2092     <function name="test_strv_in_gvalue"
2093               c:identifier="regress_test_strv_in_gvalue">
2094       <return-value transfer-ownership="full">
2095         <type name="GObject.Value" c:type="GValue*"/>
2096       </return-value>
2097     </function>
2098     <function name="test_strv_out" c:identifier="regress_test_strv_out">
2099       <return-value transfer-ownership="full">
2100         <array c:type="char**">
2101           <type name="utf8"/>
2102         </array>
2103       </return-value>
2104     </function>
2105     <function name="test_strv_out_c" c:identifier="regress_test_strv_out_c">
2106       <return-value transfer-ownership="none">
2107         <array c:type="char**">
2108           <type name="utf8"/>
2109         </array>
2110       </return-value>
2111     </function>
2112     <function name="test_strv_out_container"
2113               c:identifier="regress_test_strv_out_container">
2114       <return-value transfer-ownership="container">
2115         <array c:type="char**">
2116           <type name="utf8"/>
2117         </array>
2118       </return-value>
2119     </function>
2120     <function name="test_strv_outarg" c:identifier="regress_test_strv_outarg">
2121       <return-value transfer-ownership="none">
2122         <type name="none" c:type="void"/>
2123       </return-value>
2124       <parameters>
2125         <parameter name="retp"
2126                    direction="out"
2127                    caller-allocates="0"
2128                    transfer-ownership="container">
2129           <array c:type="char***">
2130             <type name="utf8"/>
2131           </array>
2132         </parameter>
2133       </parameters>
2134     </function>
2135     <function name="test_timet" c:identifier="regress_test_timet">
2136       <return-value transfer-ownership="none">
2137         <type name="glong" c:type="time_t"/>
2138       </return-value>
2139       <parameters>
2140         <parameter name="in" transfer-ownership="none">
2141           <type name="glong" c:type="time_t"/>
2142         </parameter>
2143       </parameters>
2144     </function>
2145     <function name="test_torture_signature_0"
2146               c:identifier="regress_test_torture_signature_0">
2147       <return-value transfer-ownership="none">
2148         <type name="none" c:type="void"/>
2149       </return-value>
2150       <parameters>
2151         <parameter name="x" transfer-ownership="none">
2152           <type name="gint" c:type="int"/>
2153         </parameter>
2154         <parameter name="y"
2155                    direction="out"
2156                    caller-allocates="0"
2157                    transfer-ownership="full">
2158           <type name="gdouble" c:type="double*"/>
2159         </parameter>
2160         <parameter name="z"
2161                    direction="out"
2162                    caller-allocates="0"
2163                    transfer-ownership="full">
2164           <type name="gint" c:type="int*"/>
2165         </parameter>
2166         <parameter name="foo" transfer-ownership="none">
2167           <type name="utf8" c:type="char*"/>
2168         </parameter>
2169         <parameter name="q"
2170                    direction="out"
2171                    caller-allocates="0"
2172                    transfer-ownership="full">
2173           <type name="gint" c:type="int*"/>
2174         </parameter>
2175         <parameter name="m" transfer-ownership="none">
2176           <type name="guint" c:type="guint"/>
2177         </parameter>
2178       </parameters>
2179     </function>
2180     <function name="test_torture_signature_1"
2181               c:identifier="regress_test_torture_signature_1"
2182               throws="1">
2183       <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
2184       <return-value transfer-ownership="none">
2185         <type name="gboolean" c:type="gboolean"/>
2186       </return-value>
2187       <parameters>
2188         <parameter name="x" transfer-ownership="none">
2189           <type name="gint" c:type="int"/>
2190         </parameter>
2191         <parameter name="y"
2192                    direction="out"
2193                    caller-allocates="0"
2194                    transfer-ownership="full">
2195           <type name="gdouble" c:type="double*"/>
2196         </parameter>
2197         <parameter name="z"
2198                    direction="out"
2199                    caller-allocates="0"
2200                    transfer-ownership="full">
2201           <type name="gint" c:type="int*"/>
2202         </parameter>
2203         <parameter name="foo" transfer-ownership="none">
2204           <type name="utf8" c:type="char*"/>
2205         </parameter>
2206         <parameter name="q"
2207                    direction="out"
2208                    caller-allocates="0"
2209                    transfer-ownership="full">
2210           <type name="gint" c:type="int*"/>
2211         </parameter>
2212         <parameter name="m" transfer-ownership="none">
2213           <type name="guint" c:type="guint"/>
2214         </parameter>
2215       </parameters>
2216     </function>
2217     <function name="test_torture_signature_2"
2218               c:identifier="regress_test_torture_signature_2">
2219       <return-value transfer-ownership="none">
2220         <type name="none" c:type="void"/>
2221       </return-value>
2222       <parameters>
2223         <parameter name="x" transfer-ownership="none">
2224           <type name="gint" c:type="int"/>
2225         </parameter>
2226         <parameter name="callback"
2227                    transfer-ownership="none"
2228                    scope="notified"
2229                    closure="2"
2230                    destroy="3">
2231           <type name="TestCallbackUserData"
2232                 c:type="RegressTestCallbackUserData"/>
2233         </parameter>
2234         <parameter name="user_data" transfer-ownership="none">
2235           <type name="gpointer" c:type="gpointer"/>
2236         </parameter>
2237         <parameter name="notify" transfer-ownership="none" scope="async">
2238           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2239         </parameter>
2240         <parameter name="y"
2241                    direction="out"
2242                    caller-allocates="0"
2243                    transfer-ownership="full">
2244           <type name="gdouble" c:type="double*"/>
2245         </parameter>
2246         <parameter name="z"
2247                    direction="out"
2248                    caller-allocates="0"
2249                    transfer-ownership="full">
2250           <type name="gint" c:type="int*"/>
2251         </parameter>
2252         <parameter name="foo" transfer-ownership="none">
2253           <type name="utf8" c:type="char*"/>
2254         </parameter>
2255         <parameter name="q"
2256                    direction="out"
2257                    caller-allocates="0"
2258                    transfer-ownership="full">
2259           <type name="gint" c:type="int*"/>
2260         </parameter>
2261         <parameter name="m" transfer-ownership="none">
2262           <type name="guint" c:type="guint"/>
2263         </parameter>
2264       </parameters>
2265     </function>
2266     <function name="test_uint" c:identifier="regress_test_uint">
2267       <return-value transfer-ownership="none">
2268         <type name="guint" c:type="guint"/>
2269       </return-value>
2270       <parameters>
2271         <parameter name="in" transfer-ownership="none">
2272           <type name="guint" c:type="guint"/>
2273         </parameter>
2274       </parameters>
2275     </function>
2276     <function name="test_uint16" c:identifier="regress_test_uint16">
2277       <return-value transfer-ownership="none">
2278         <type name="guint16" c:type="guint16"/>
2279       </return-value>
2280       <parameters>
2281         <parameter name="in" transfer-ownership="none">
2282           <type name="guint16" c:type="guint16"/>
2283         </parameter>
2284       </parameters>
2285     </function>
2286     <function name="test_uint32" c:identifier="regress_test_uint32">
2287       <return-value transfer-ownership="none">
2288         <type name="guint32" c:type="guint32"/>
2289       </return-value>
2290       <parameters>
2291         <parameter name="in" transfer-ownership="none">
2292           <type name="guint32" c:type="guint32"/>
2293         </parameter>
2294       </parameters>
2295     </function>
2296     <function name="test_uint64" c:identifier="regress_test_uint64">
2297       <return-value transfer-ownership="none">
2298         <type name="guint64" c:type="guint64"/>
2299       </return-value>
2300       <parameters>
2301         <parameter name="in" transfer-ownership="none">
2302           <type name="guint64" c:type="guint64"/>
2303         </parameter>
2304       </parameters>
2305     </function>
2306     <function name="test_uint8" c:identifier="regress_test_uint8">
2307       <return-value transfer-ownership="none">
2308         <type name="guint8" c:type="guint8"/>
2309       </return-value>
2310       <parameters>
2311         <parameter name="in" transfer-ownership="none">
2312           <type name="guint8" c:type="guint8"/>
2313         </parameter>
2314       </parameters>
2315     </function>
2316     <function name="test_ulong" c:identifier="regress_test_ulong">
2317       <return-value transfer-ownership="none">
2318         <type name="gulong" c:type="gulong"/>
2319       </return-value>
2320       <parameters>
2321         <parameter name="in" transfer-ownership="none">
2322           <type name="gulong" c:type="gulong"/>
2323         </parameter>
2324       </parameters>
2325     </function>
2326     <function name="test_unichar" c:identifier="regress_test_unichar">
2327       <return-value transfer-ownership="none">
2328         <type name="gunichar" c:type="gunichar"/>
2329       </return-value>
2330       <parameters>
2331         <parameter name="in" transfer-ownership="none">
2332           <type name="gunichar" c:type="gunichar"/>
2333         </parameter>
2334       </parameters>
2335     </function>
2336     <function name="test_unsigned_enum_param"
2337               c:identifier="regress_test_unsigned_enum_param">
2338       <return-value transfer-ownership="none">
2339         <type name="utf8" c:type="gchar*"/>
2340       </return-value>
2341       <parameters>
2342         <parameter name="e" transfer-ownership="none">
2343           <type name="TestEnumUnsigned" c:type="RegressTestEnumUnsigned"/>
2344         </parameter>
2345       </parameters>
2346     </function>
2347     <function name="test_ushort" c:identifier="regress_test_ushort">
2348       <return-value transfer-ownership="none">
2349         <type name="gushort" c:type="gushort"/>
2350       </return-value>
2351       <parameters>
2352         <parameter name="in" transfer-ownership="none">
2353           <type name="gushort" c:type="gushort"/>
2354         </parameter>
2355       </parameters>
2356     </function>
2357     <function name="test_utf8_const_in"
2358               c:identifier="regress_test_utf8_const_in">
2359       <return-value transfer-ownership="none">
2360         <type name="none" c:type="void"/>
2361       </return-value>
2362       <parameters>
2363         <parameter name="in" transfer-ownership="none">
2364           <type name="utf8" c:type="char*"/>
2365         </parameter>
2366       </parameters>
2367     </function>
2368     <function name="test_utf8_const_return"
2369               c:identifier="regress_test_utf8_const_return">
2370       <return-value transfer-ownership="none">
2371         <doc xml:whitespace="preserve">UTF-8 string</doc>
2372         <type name="utf8" c:type="char*"/>
2373       </return-value>
2374     </function>
2375     <function name="test_utf8_inout" c:identifier="regress_test_utf8_inout">
2376       <return-value transfer-ownership="none">
2377         <type name="none" c:type="void"/>
2378       </return-value>
2379       <parameters>
2380         <parameter name="inout"
2381                    direction="inout"
2382                    caller-allocates="0"
2383                    transfer-ownership="full">
2384           <type name="utf8" c:type="char**"/>
2385         </parameter>
2386       </parameters>
2387     </function>
2388     <function name="test_utf8_nonconst_return"
2389               c:identifier="regress_test_utf8_nonconst_return">
2390       <return-value transfer-ownership="full">
2391         <doc xml:whitespace="preserve">UTF-8 string</doc>
2392         <type name="utf8" c:type="char*"/>
2393       </return-value>
2394     </function>
2395     <function name="test_utf8_null_in"
2396               c:identifier="regress_test_utf8_null_in">
2397       <return-value transfer-ownership="none">
2398         <type name="none" c:type="void"/>
2399       </return-value>
2400       <parameters>
2401         <parameter name="in" transfer-ownership="none" allow-none="1">
2402           <type name="utf8" c:type="char*"/>
2403         </parameter>
2404       </parameters>
2405     </function>
2406     <function name="test_utf8_null_out"
2407               c:identifier="regress_test_utf8_null_out">
2408       <return-value transfer-ownership="none">
2409         <type name="none" c:type="void"/>
2410       </return-value>
2411       <parameters>
2412         <parameter name="char_out"
2413                    direction="out"
2414                    caller-allocates="0"
2415                    transfer-ownership="full"
2416                    allow-none="1">
2417           <type name="utf8" c:type="char**"/>
2418         </parameter>
2419       </parameters>
2420     </function>
2421     <function name="test_utf8_out" c:identifier="regress_test_utf8_out">
2422       <return-value transfer-ownership="none">
2423         <type name="none" c:type="void"/>
2424       </return-value>
2425       <parameters>
2426         <parameter name="out"
2427                    direction="out"
2428                    caller-allocates="0"
2429                    transfer-ownership="full">
2430           <type name="utf8" c:type="char**"/>
2431         </parameter>
2432       </parameters>
2433     </function>
2434     <function name="test_utf8_out_nonconst_return"
2435               c:identifier="regress_test_utf8_out_nonconst_return">
2436       <return-value transfer-ownership="full">
2437         <doc xml:whitespace="preserve">a copy of "first"</doc>
2438         <type name="utf8" c:type="char*"/>
2439       </return-value>
2440       <parameters>
2441         <parameter name="out"
2442                    direction="out"
2443                    caller-allocates="0"
2444                    transfer-ownership="full">
2445           <doc xml:whitespace="preserve">a copy of "second"</doc>
2446           <type name="utf8" c:type="char**"/>
2447         </parameter>
2448       </parameters>
2449     </function>
2450     <function name="test_utf8_out_out"
2451               c:identifier="regress_test_utf8_out_out">
2452       <return-value transfer-ownership="none">
2453         <type name="none" c:type="void"/>
2454       </return-value>
2455       <parameters>
2456         <parameter name="out0"
2457                    direction="out"
2458                    caller-allocates="0"
2459                    transfer-ownership="full">
2460           <doc xml:whitespace="preserve">a copy of "first"</doc>
2461           <type name="utf8" c:type="char**"/>
2462         </parameter>
2463         <parameter name="out1"
2464                    direction="out"
2465                    caller-allocates="0"
2466                    transfer-ownership="full">
2467           <doc xml:whitespace="preserve">a copy of "second"</doc>
2468           <type name="utf8" c:type="char**"/>
2469         </parameter>
2470       </parameters>
2471     </function>
2472     <function name="test_value_get_fundamental_object"
2473               c:identifier="regress_test_value_get_fundamental_object"
2474               introspectable="0">
2475       <return-value>
2476         <type name="TestFundamentalObject"
2477               c:type="RegressTestFundamentalObject*"/>
2478       </return-value>
2479       <parameters>
2480         <parameter name="value" transfer-ownership="none">
2481           <type name="GObject.Value" c:type="GValue*"/>
2482         </parameter>
2483       </parameters>
2484     </function>
2485     <function name="test_value_return"
2486               c:identifier="regress_test_value_return">
2487       <return-value transfer-ownership="none">
2488         <doc xml:whitespace="preserve">the int wrapped in a GValue.</doc>
2489         <type name="GObject.Value" c:type="GValue*"/>
2490       </return-value>
2491       <parameters>
2492         <parameter name="i" transfer-ownership="none">
2493           <doc xml:whitespace="preserve">an int</doc>
2494           <type name="gint" c:type="int"/>
2495         </parameter>
2496       </parameters>
2497     </function>
2498     <function name="test_value_set_fundamental_object"
2499               c:identifier="regress_test_value_set_fundamental_object"
2500               introspectable="0">
2501       <return-value transfer-ownership="none">
2502         <type name="none" c:type="void"/>
2503       </return-value>
2504       <parameters>
2505         <parameter name="value" transfer-ownership="none">
2506           <type name="GObject.Value" c:type="GValue*"/>
2507         </parameter>
2508         <parameter name="fundamental_object" transfer-ownership="none">
2509           <type name="TestFundamentalObject"
2510                 c:type="RegressTestFundamentalObject*"/>
2511         </parameter>
2512       </parameters>
2513     </function>
2514   </namespace>
2515 </repository>