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