Imported Upstream version 1.49.1
[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="Gio" version="2.0"/>
10   <include name="Utility" version="1.0"/>
11   <include name="cairo" version="1.0"/>
12   <c:include name="regress.h"/>
13   <namespace name="Regress"
14              version="1.0"
15              shared-library="libregress.so"
16              c:identifier-prefixes="Regress"
17              c:symbol-prefixes="regress">
18     <alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
19       <doc xml:space="preserve">Typedef TestBoxed to test caller-allocates correctness</doc>
20       <type name="TestBoxed" c:type="RegressTestBoxed"/>
21     </alias>
22     <alias name="FooObjectCookie" c:type="RegressFooObjectCookie">
23       <type name="gpointer" c:type="gpointer"/>
24     </alias>
25     <alias name="FooXEvent" c:type="RegressFooXEvent">
26       <type name="gpointer" c:type="gpointer"/>
27     </alias>
28     <alias name="IntsetAlias" c:type="RegressIntsetAlias" introspectable="0">
29       <doc xml:space="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
30       <type name="Intset" c:type="RegressIntset"/>
31     </alias>
32     <alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
33       <doc xml:space="preserve">Typedef'd GPtrArray for some reason</doc>
34       <type name="GLib.PtrArray" c:type="GPtrArray"/>
35     </alias>
36     <alias name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64">
37       <type name="guint64" c:type="guint64"/>
38     </alias>
39     <alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
40       <doc xml:space="preserve">Typedef'd va_list for additional reasons</doc>
41       <type name="va_list" c:type="va_list"/>
42     </alias>
43     <constant name="ANNOTATION_CALCULATED_DEFINE"
44               value="100"
45               c:type="REGRESS_ANNOTATION_CALCULATED_DEFINE">
46       <type name="gint" c:type="gint"/>
47     </constant>
48     <constant name="ANNOTATION_CALCULATED_LARGE"
49               value="10000000000UL"
50               c:type="REGRESS_ANNOTATION_CALCULATED_LARGE"
51               version="1.4">
52       <doc xml:space="preserve">Constant to define a calculated large value</doc>
53       <type name="gint" c:type="gint"/>
54     </constant>
55     <constant name="ANNOTATION_CALCULATED_LARGE_DIV"
56               value="1000000UL"
57               c:type="REGRESS_ANNOTATION_CALCULATED_LARGE_DIV">
58       <doc xml:space="preserve">Constant to define a calculated large value</doc>
59       <type name="gint" c:type="gint"/>
60     </constant>
61     <enumeration name="ATestError"
62                  c:type="RegressATestError"
63                  glib:error-domain="regress-atest-error">
64       <member name="code0" value="0" c:identifier="REGRESS_ATEST_ERROR_CODE0">
65       </member>
66       <member name="code1" value="1" c:identifier="REGRESS_ATEST_ERROR_CODE1">
67       </member>
68       <member name="code2" value="2" c:identifier="REGRESS_ATEST_ERROR_CODE2">
69       </member>
70     </enumeration>
71     <record name="AnAnonymousUnion" c:type="RegressAnAnonymousUnion">
72       <field name="x" writable="1">
73         <type name="gint" c:type="int"/>
74       </field>
75       <union>
76         <field name="a" writable="1">
77           <array zero-terminated="0"
78                  c:type="RegressLikeGnomeKeyringPasswordSchema"
79                  fixed-size="2">
80             <type name="LikeGnomeKeyringPasswordSchema"
81                   c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
82           </array>
83         </field>
84         <field name="padding" writable="1">
85           <array zero-terminated="0" c:type="guint" fixed-size="4">
86             <type name="guint" c:type="guint"/>
87           </array>
88         </field>
89       </union>
90     </record>
91     <bitfield name="AnnotationBitfield" c:type="RegressAnnotationBitfield">
92       <member name="foo" value="1" c:identifier="ANN_FLAG_FOO">
93       </member>
94       <member name="bar" value="2" c:identifier="ANN_FLAG_BAR">
95       </member>
96     </bitfield>
97     <callback name="AnnotationCallback" c:type="RegressAnnotationCallback">
98       <doc xml:space="preserve">This is a callback.</doc>
99       <return-value transfer-ownership="none">
100         <doc xml:space="preserve">array of ints</doc>
101         <type name="gint" c:type="const gint*"/>
102       </return-value>
103       <parameters>
104         <parameter name="in" transfer-ownership="none">
105           <doc xml:space="preserve">array of ints</doc>
106           <type name="gint" c:type="const gint*"/>
107         </parameter>
108       </parameters>
109     </callback>
110     <record name="AnnotationFields" c:type="RegressAnnotationFields">
111       <doc xml:space="preserve">This is a struct for testing field documentation and annotations</doc>
112       <field name="field1" writable="1">
113         <doc xml:space="preserve">Some documentation</doc>
114         <type name="gint" c:type="int"/>
115       </field>
116       <field name="arr" writable="1">
117         <doc xml:space="preserve">an array of length @len</doc>
118         <array length="2" zero-terminated="0" c:type="guchar*">
119           <type name="guint8" c:type="guchar"/>
120         </array>
121       </field>
122       <field name="len" writable="1">
123         <doc xml:space="preserve">the length of array</doc>
124         <type name="gulong" c:type="gulong"/>
125       </field>
126     </record>
127     <callback name="AnnotationForeachFunc"
128               c:type="RegressAnnotationForeachFunc">
129       <return-value transfer-ownership="none">
130         <type name="none" c:type="void"/>
131       </return-value>
132       <parameters>
133         <parameter name="object" transfer-ownership="none">
134           <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
135         </parameter>
136         <parameter name="item" transfer-ownership="none">
137           <type name="utf8" c:type="const char*"/>
138         </parameter>
139         <parameter name="user_data"
140                    transfer-ownership="none"
141                    nullable="1"
142                    allow-none="1"
143                    closure="2">
144           <type name="gpointer" c:type="gpointer"/>
145         </parameter>
146       </parameters>
147     </callback>
148     <callback name="AnnotationListCallback"
149               c:type="RegressAnnotationListCallback">
150       <doc xml:space="preserve">This is a callback taking a list.</doc>
151       <return-value transfer-ownership="container">
152         <doc xml:space="preserve">list of strings</doc>
153         <type name="GLib.List" c:type="GList*">
154           <type name="utf8"/>
155         </type>
156       </return-value>
157       <parameters>
158         <parameter name="in" transfer-ownership="none">
159           <doc xml:space="preserve">list of strings</doc>
160           <type name="GLib.List" c:type="GList*">
161             <type name="utf8"/>
162           </type>
163         </parameter>
164       </parameters>
165     </callback>
166     <callback name="AnnotationNotifyFunc" c:type="RegressAnnotationNotifyFunc">
167       <doc xml:space="preserve">This is a callback with a 'closure' argument that is not named
168 'user_data' and hence has to be annotated.</doc>
169       <return-value transfer-ownership="none">
170         <type name="none" c:type="void"/>
171       </return-value>
172       <parameters>
173         <parameter name="data"
174                    transfer-ownership="none"
175                    nullable="1"
176                    allow-none="1"
177                    closure="0">
178           <doc xml:space="preserve">The user data</doc>
179           <type name="gpointer" c:type="gpointer"/>
180         </parameter>
181       </parameters>
182     </callback>
183     <class name="AnnotationObject"
184            c:symbol-prefix="annotation_object"
185            c:type="RegressAnnotationObject"
186            parent="GObject.Object"
187            glib:type-name="RegressAnnotationObject"
188            glib:get-type="regress_annotation_object_get_type"
189            glib:type-struct="AnnotationObjectClass">
190       <attribute name="org.example.Test" value="cows"/>
191       <doc xml:space="preserve">This is an object used to test annotations.</doc>
192       <method name="allow_none"
193               c:identifier="regress_annotation_object_allow_none">
194         <return-value transfer-ownership="none">
195           <doc xml:space="preserve">%NULL always</doc>
196           <type name="GObject.Object" c:type="GObject*"/>
197         </return-value>
198         <parameters>
199           <instance-parameter name="object" transfer-ownership="none">
200             <doc xml:space="preserve">a #GObject</doc>
201             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
202           </instance-parameter>
203           <parameter name="somearg"
204                      transfer-ownership="none"
205                      nullable="1"
206                      allow-none="1">
207             <type name="utf8" c:type="const gchar*"/>
208           </parameter>
209         </parameters>
210       </method>
211       <method name="calleeowns"
212               c:identifier="regress_annotation_object_calleeowns">
213         <doc xml:space="preserve">This is a test for out arguments; GObject defaults to transfer</doc>
214         <return-value transfer-ownership="none">
215           <doc xml:space="preserve">an int</doc>
216           <type name="gint" c:type="gint"/>
217         </return-value>
218         <parameters>
219           <instance-parameter name="object" transfer-ownership="none">
220             <doc xml:space="preserve">a #GObject</doc>
221             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
222           </instance-parameter>
223           <parameter name="toown"
224                      direction="out"
225                      caller-allocates="0"
226                      transfer-ownership="full">
227             <doc xml:space="preserve">a #GObject</doc>
228             <type name="GObject.Object" c:type="GObject**"/>
229           </parameter>
230         </parameters>
231       </method>
232       <method name="calleesowns"
233               c:identifier="regress_annotation_object_calleesowns">
234         <doc xml:space="preserve">This is a test for out arguments, one transferred, other not</doc>
235         <return-value transfer-ownership="none">
236           <doc xml:space="preserve">an int</doc>
237           <type name="gint" c:type="gint"/>
238         </return-value>
239         <parameters>
240           <instance-parameter name="object" transfer-ownership="none">
241             <doc xml:space="preserve">a #GObject</doc>
242             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
243           </instance-parameter>
244           <parameter name="toown1"
245                      direction="out"
246                      caller-allocates="0"
247                      transfer-ownership="full">
248             <doc xml:space="preserve">a #GObject</doc>
249             <type name="GObject.Object" c:type="GObject**"/>
250           </parameter>
251           <parameter name="toown2"
252                      direction="out"
253                      caller-allocates="0"
254                      transfer-ownership="none">
255             <doc xml:space="preserve">a #GObject</doc>
256             <type name="GObject.Object" c:type="GObject**"/>
257           </parameter>
258         </parameters>
259       </method>
260       <method name="compute_sum"
261               c:identifier="regress_annotation_object_compute_sum">
262         <doc xml:space="preserve">Test taking a zero-terminated array</doc>
263         <return-value transfer-ownership="none">
264           <type name="none" c:type="void"/>
265         </return-value>
266         <parameters>
267           <instance-parameter name="object" transfer-ownership="none">
268             <doc xml:space="preserve">a #GObject</doc>
269             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
270           </instance-parameter>
271           <parameter name="nums" transfer-ownership="none">
272             <doc xml:space="preserve">Sequence of numbers</doc>
273             <array zero-terminated="0" c:type="int*">
274               <type name="gint" c:type="int"/>
275             </array>
276           </parameter>
277         </parameters>
278       </method>
279       <method name="compute_sum_n"
280               c:identifier="regress_annotation_object_compute_sum_n">
281         <doc xml:space="preserve">Test taking an array with length parameter</doc>
282         <return-value transfer-ownership="none">
283           <type name="none" c:type="void"/>
284         </return-value>
285         <parameters>
286           <instance-parameter name="object" transfer-ownership="none">
287             <doc xml:space="preserve">a #GObject</doc>
288             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
289           </instance-parameter>
290           <parameter name="nums" transfer-ownership="none">
291             <doc xml:space="preserve">Sequence of
292   numbers that are zero-terminated</doc>
293             <array length="1" zero-terminated="0" c:type="int*">
294               <type name="gint" c:type="int"/>
295             </array>
296           </parameter>
297           <parameter name="n_nums" transfer-ownership="none">
298             <doc xml:space="preserve">Length of number array</doc>
299             <type name="gint" c:type="int"/>
300           </parameter>
301         </parameters>
302       </method>
303       <method name="compute_sum_nz"
304               c:identifier="regress_annotation_object_compute_sum_nz">
305         <doc xml:space="preserve">Test taking a zero-terminated array with length parameter</doc>
306         <return-value transfer-ownership="none">
307           <type name="none" c:type="void"/>
308         </return-value>
309         <parameters>
310           <instance-parameter name="object" transfer-ownership="none">
311             <doc xml:space="preserve">a #RegressAnnotationObject</doc>
312             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
313           </instance-parameter>
314           <parameter name="nums" transfer-ownership="none">
315             <doc xml:space="preserve">Sequence of numbers that
316 are zero-terminated</doc>
317             <array length="1" zero-terminated="1" c:type="int*">
318               <type name="gint" c:type="int"/>
319             </array>
320           </parameter>
321           <parameter name="n_nums" transfer-ownership="none">
322             <doc xml:space="preserve">Length of number array</doc>
323             <type name="gint" c:type="int"/>
324           </parameter>
325         </parameters>
326       </method>
327       <method name="create_object"
328               c:identifier="regress_annotation_object_create_object">
329         <doc xml:space="preserve">Test returning a caller-owned object</doc>
330         <return-value transfer-ownership="full">
331           <doc xml:space="preserve">The object</doc>
332           <type name="GObject.Object" c:type="GObject*"/>
333         </return-value>
334         <parameters>
335           <instance-parameter name="object" transfer-ownership="none">
336             <doc xml:space="preserve">a #GObject</doc>
337             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
338           </instance-parameter>
339         </parameters>
340       </method>
341       <method name="do_not_use"
342               c:identifier="regress_annotation_object_do_not_use"
343               deprecated="1"
344               deprecated-version="0.12">
345         <doc-deprecated xml:space="preserve">Use regress_annotation_object_create_object() instead.</doc-deprecated>
346         <return-value transfer-ownership="none">
347           <doc xml:space="preserve">%NULL always</doc>
348           <type name="GObject.Object" c:type="GObject*"/>
349         </return-value>
350         <parameters>
351           <instance-parameter name="object" transfer-ownership="none">
352             <doc xml:space="preserve">a #GObject</doc>
353             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
354           </instance-parameter>
355         </parameters>
356       </method>
357       <method name="extra_annos"
358               c:identifier="regress_annotation_object_extra_annos">
359         <attribute name="org.foobar" value="testvalue"/>
360         <return-value transfer-ownership="none">
361           <type name="none" c:type="void"/>
362         </return-value>
363         <parameters>
364           <instance-parameter name="object" transfer-ownership="none">
365             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
366           </instance-parameter>
367         </parameters>
368       </method>
369       <method name="foreach" c:identifier="regress_annotation_object_foreach">
370         <doc xml:space="preserve">Test taking a call-scoped callback</doc>
371         <return-value transfer-ownership="none">
372           <type name="none" c:type="void"/>
373         </return-value>
374         <parameters>
375           <instance-parameter name="object" transfer-ownership="none">
376             <doc xml:space="preserve">a #RegressAnnotationObject</doc>
377             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
378           </instance-parameter>
379           <parameter name="func"
380                      transfer-ownership="none"
381                      scope="call"
382                      closure="1">
383             <doc xml:space="preserve">Callback to invoke</doc>
384             <type name="AnnotationForeachFunc"
385                   c:type="RegressAnnotationForeachFunc"/>
386           </parameter>
387           <parameter name="user_data"
388                      transfer-ownership="none"
389                      nullable="1"
390                      allow-none="1">
391             <doc xml:space="preserve">Callback user data</doc>
392             <type name="gpointer" c:type="gpointer"/>
393           </parameter>
394         </parameters>
395       </method>
396       <method name="get_hash"
397               c:identifier="regress_annotation_object_get_hash">
398         <doc xml:space="preserve">This is a test for returning a hash table mapping strings to
399 objects.</doc>
400         <return-value transfer-ownership="full">
401           <doc xml:space="preserve">hash table</doc>
402           <type name="GLib.HashTable" c:type="GHashTable*">
403             <type name="utf8"/>
404             <type name="GObject.Object"/>
405           </type>
406         </return-value>
407         <parameters>
408           <instance-parameter name="object" transfer-ownership="none">
409             <doc xml:space="preserve">a #GObject</doc>
410             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
411           </instance-parameter>
412         </parameters>
413       </method>
414       <method name="get_objects"
415               c:identifier="regress_annotation_object_get_objects">
416         <doc xml:space="preserve">This is a test for returning a list of objects.
417 The list itself should be freed, but not the internal objects,
418 intentionally similar example to gtk_container_get_children</doc>
419         <return-value transfer-ownership="container">
420           <doc xml:space="preserve">list of objects</doc>
421           <type name="GLib.SList" c:type="GSList*">
422             <type name="AnnotationObject"/>
423           </type>
424         </return-value>
425         <parameters>
426           <instance-parameter name="object" transfer-ownership="none">
427             <doc xml:space="preserve">a #GObject</doc>
428             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
429           </instance-parameter>
430         </parameters>
431       </method>
432       <method name="get_strings"
433               c:identifier="regress_annotation_object_get_strings">
434         <doc xml:space="preserve">This is a test for returning a list of strings, where
435 each string needs to be freed.</doc>
436         <return-value transfer-ownership="full">
437           <doc xml:space="preserve">list of strings</doc>
438           <type name="GLib.List" c:type="GList*">
439             <type name="utf8"/>
440           </type>
441         </return-value>
442         <parameters>
443           <instance-parameter name="object" transfer-ownership="none">
444             <doc xml:space="preserve">a #GObject</doc>
445             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
446           </instance-parameter>
447         </parameters>
448       </method>
449       <method name="hidden_self"
450               c:identifier="regress_annotation_object_hidden_self">
451         <return-value transfer-ownership="none">
452           <type name="none" c:type="void"/>
453         </return-value>
454         <parameters>
455           <instance-parameter name="object" transfer-ownership="none">
456             <doc xml:space="preserve">A #RegressAnnotationObject</doc>
457             <type name="AnnotationObject" c:type="gpointer"/>
458           </instance-parameter>
459         </parameters>
460       </method>
461       <method name="in" c:identifier="regress_annotation_object_in">
462         <doc xml:space="preserve">This is a test for in arguments</doc>
463         <return-value transfer-ownership="none">
464           <doc xml:space="preserve">an int</doc>
465           <type name="gint" c:type="gint"/>
466         </return-value>
467         <parameters>
468           <instance-parameter name="object" transfer-ownership="none">
469             <doc xml:space="preserve">a #GObject</doc>
470             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
471           </instance-parameter>
472           <parameter name="inarg" transfer-ownership="none">
473             <doc xml:space="preserve">This is an argument test</doc>
474             <type name="gint" c:type="int*"/>
475           </parameter>
476         </parameters>
477       </method>
478       <method name="inout" c:identifier="regress_annotation_object_inout">
479         <doc xml:space="preserve">This is a test for out arguments</doc>
480         <return-value transfer-ownership="none">
481           <doc xml:space="preserve">an int</doc>
482           <type name="gint" c:type="gint"/>
483         </return-value>
484         <parameters>
485           <instance-parameter name="object" transfer-ownership="none">
486             <doc xml:space="preserve">a #GObject</doc>
487             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
488           </instance-parameter>
489           <parameter name="inoutarg"
490                      direction="inout"
491                      caller-allocates="0"
492                      transfer-ownership="full">
493             <doc xml:space="preserve">This is an argument test</doc>
494             <type name="gint" c:type="int*"/>
495           </parameter>
496         </parameters>
497       </method>
498       <method name="inout2" c:identifier="regress_annotation_object_inout2">
499         <doc xml:space="preserve">This is a second test for out arguments</doc>
500         <return-value transfer-ownership="none">
501           <doc xml:space="preserve">an int</doc>
502           <type name="gint" c:type="gint"/>
503         </return-value>
504         <parameters>
505           <instance-parameter name="object" transfer-ownership="none">
506             <doc xml:space="preserve">a #GObject</doc>
507             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
508           </instance-parameter>
509           <parameter name="inoutarg"
510                      direction="inout"
511                      caller-allocates="0"
512                      transfer-ownership="full">
513             <doc xml:space="preserve">This is an argument test</doc>
514             <type name="gint" c:type="int*"/>
515           </parameter>
516         </parameters>
517       </method>
518       <method name="inout3" c:identifier="regress_annotation_object_inout3">
519         <doc xml:space="preserve">This is a 3th test for out arguments</doc>
520         <return-value transfer-ownership="none">
521           <doc xml:space="preserve">an int</doc>
522           <type name="gint" c:type="gint"/>
523         </return-value>
524         <parameters>
525           <instance-parameter name="object" transfer-ownership="none">
526             <doc xml:space="preserve">a #GObject</doc>
527             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
528           </instance-parameter>
529           <parameter name="inoutarg"
530                      direction="inout"
531                      caller-allocates="0"
532                      transfer-ownership="full"
533                      nullable="1"
534                      allow-none="1">
535             <doc xml:space="preserve">This is an argument test</doc>
536             <type name="gint" c:type="int*"/>
537           </parameter>
538         </parameters>
539       </method>
540       <method name="method" c:identifier="regress_annotation_object_method">
541         <return-value transfer-ownership="none">
542           <doc xml:space="preserve">an int</doc>
543           <type name="gint" c:type="gint"/>
544         </return-value>
545         <parameters>
546           <instance-parameter name="object" transfer-ownership="none">
547             <doc xml:space="preserve">a #GObject</doc>
548             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
549           </instance-parameter>
550         </parameters>
551       </method>
552       <method name="notrans" c:identifier="regress_annotation_object_notrans">
553         <return-value transfer-ownership="none">
554           <doc xml:space="preserve">An object, not referenced</doc>
555           <type name="GObject.Object" c:type="GObject*"/>
556         </return-value>
557         <parameters>
558           <instance-parameter name="object" transfer-ownership="none">
559             <doc xml:space="preserve">a #GObject</doc>
560             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
561           </instance-parameter>
562         </parameters>
563       </method>
564       <method name="out" c:identifier="regress_annotation_object_out">
565         <doc xml:space="preserve">This is a test for out arguments</doc>
566         <return-value transfer-ownership="none">
567           <doc xml:space="preserve">an int</doc>
568           <type name="gint" c:type="gint"/>
569         </return-value>
570         <parameters>
571           <instance-parameter name="object" transfer-ownership="none">
572             <doc xml:space="preserve">a #GObject</doc>
573             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
574           </instance-parameter>
575           <parameter name="outarg"
576                      direction="out"
577                      caller-allocates="0"
578                      transfer-ownership="full">
579             <doc xml:space="preserve">This is an argument test</doc>
580             <type name="gint" c:type="int*"/>
581           </parameter>
582         </parameters>
583       </method>
584       <method name="parse_args"
585               c:identifier="regress_annotation_object_parse_args">
586         <doc xml:space="preserve">Test taking a zero-terminated array with length parameter</doc>
587         <return-value transfer-ownership="none">
588           <type name="none" c:type="void"/>
589         </return-value>
590         <parameters>
591           <instance-parameter name="object" transfer-ownership="none">
592             <doc xml:space="preserve">a #RegressAnnotationObject</doc>
593             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
594           </instance-parameter>
595           <parameter name="argc"
596                      direction="inout"
597                      caller-allocates="0"
598                      transfer-ownership="full">
599             <doc xml:space="preserve">Length of the argument vector</doc>
600             <type name="gint" c:type="int*"/>
601           </parameter>
602           <parameter name="argv"
603                      direction="inout"
604                      caller-allocates="0"
605                      transfer-ownership="full">
606             <doc xml:space="preserve">Argument vector</doc>
607             <array length="0" zero-terminated="1" c:type="char***">
608               <type name="utf8" c:type="char**"/>
609             </array>
610           </parameter>
611         </parameters>
612       </method>
613       <method name="set_data"
614               c:identifier="regress_annotation_object_set_data">
615         <doc xml:space="preserve">Test taking a guchar * with a length.</doc>
616         <return-value transfer-ownership="none">
617           <type name="none" c:type="void"/>
618         </return-value>
619         <parameters>
620           <instance-parameter name="object" transfer-ownership="none">
621             <doc xml:space="preserve">a #RegressAnnotationObject</doc>
622             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
623           </instance-parameter>
624           <parameter name="data" transfer-ownership="none">
625             <doc xml:space="preserve">The data</doc>
626             <array length="1" zero-terminated="0" c:type="guchar*">
627               <type name="guint8" c:type="guchar"/>
628             </array>
629           </parameter>
630           <parameter name="length" transfer-ownership="none">
631             <doc xml:space="preserve">Length of the data</doc>
632             <type name="gsize" c:type="gsize"/>
633           </parameter>
634         </parameters>
635       </method>
636       <method name="set_data2"
637               c:identifier="regress_annotation_object_set_data2">
638         <doc xml:space="preserve">Test taking a gchar * with a length.</doc>
639         <return-value transfer-ownership="none">
640           <type name="none" c:type="void"/>
641         </return-value>
642         <parameters>
643           <instance-parameter name="object" transfer-ownership="none">
644             <doc xml:space="preserve">a #RegressAnnotationObject</doc>
645             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
646           </instance-parameter>
647           <parameter name="data" transfer-ownership="none">
648             <doc xml:space="preserve">The data</doc>
649             <array length="1" zero-terminated="0" c:type="gchar*">
650               <type name="gint8"/>
651             </array>
652           </parameter>
653           <parameter name="length" transfer-ownership="none">
654             <doc xml:space="preserve">Length of the data</doc>
655             <type name="gsize" c:type="gsize"/>
656           </parameter>
657         </parameters>
658       </method>
659       <method name="set_data3"
660               c:identifier="regress_annotation_object_set_data3">
661         <doc xml:space="preserve">Test taking a gchar * with a length, overriding the array element
662 type.</doc>
663         <return-value transfer-ownership="none">
664           <type name="none" c:type="void"/>
665         </return-value>
666         <parameters>
667           <instance-parameter name="object" transfer-ownership="none">
668             <doc xml:space="preserve">a #RegressAnnotationObject</doc>
669             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
670           </instance-parameter>
671           <parameter name="data" transfer-ownership="none">
672             <doc xml:space="preserve">The data</doc>
673             <array length="1" zero-terminated="0" c:type="gpointer">
674               <type name="guint8"/>
675             </array>
676           </parameter>
677           <parameter name="length" transfer-ownership="none">
678             <doc xml:space="preserve">Length of the data</doc>
679             <type name="gsize" c:type="gsize"/>
680           </parameter>
681         </parameters>
682       </method>
683       <method name="string_out"
684               c:identifier="regress_annotation_object_string_out">
685         <doc xml:space="preserve">Test returning a string as an out parameter</doc>
686         <return-value transfer-ownership="none">
687           <doc xml:space="preserve">some boolean</doc>
688           <type name="gboolean" c:type="gboolean"/>
689         </return-value>
690         <parameters>
691           <instance-parameter name="object" transfer-ownership="none">
692             <doc xml:space="preserve">a #RegressAnnotationObject</doc>
693             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
694           </instance-parameter>
695           <parameter name="str_out"
696                      direction="out"
697                      caller-allocates="0"
698                      transfer-ownership="full">
699             <doc xml:space="preserve">string return value</doc>
700             <type name="utf8" c:type="char**"/>
701           </parameter>
702         </parameters>
703       </method>
704       <method name="use_buffer"
705               c:identifier="regress_annotation_object_use_buffer">
706         <return-value transfer-ownership="none">
707           <type name="none" c:type="void"/>
708         </return-value>
709         <parameters>
710           <instance-parameter name="object" transfer-ownership="none">
711             <doc xml:space="preserve">a #GObject</doc>
712             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
713           </instance-parameter>
714           <parameter name="bytes" transfer-ownership="none">
715             <type name="guint8" c:type="guchar*"/>
716           </parameter>
717         </parameters>
718       </method>
719       <method name="watch"
720               c:identifier="regress_annotation_object_watch"
721               shadowed-by="watch_full"
722               introspectable="0">
723         <doc xml:space="preserve">This is here just for the sake of being overriden by its
724 regress_annotation_object_watch_full().</doc>
725         <return-value transfer-ownership="none">
726           <type name="none" c:type="void"/>
727         </return-value>
728         <parameters>
729           <instance-parameter name="object" transfer-ownership="none">
730             <doc xml:space="preserve">A #RegressAnnotationObject</doc>
731             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
732           </instance-parameter>
733           <parameter name="func" transfer-ownership="none" closure="1">
734             <doc xml:space="preserve">The callback</doc>
735             <type name="AnnotationForeachFunc"
736                   c:type="RegressAnnotationForeachFunc"/>
737           </parameter>
738           <parameter name="user_data"
739                      transfer-ownership="none"
740                      nullable="1"
741                      allow-none="1">
742             <doc xml:space="preserve">The callback data</doc>
743             <type name="gpointer" c:type="gpointer"/>
744           </parameter>
745         </parameters>
746       </method>
747       <method name="watch_full"
748               c:identifier="regress_annotation_object_watch_full"
749               shadows="watch">
750         <doc xml:space="preserve">Test overriding via the "Rename To" annotation.</doc>
751         <return-value transfer-ownership="none">
752           <type name="none" c:type="void"/>
753         </return-value>
754         <parameters>
755           <instance-parameter name="object" transfer-ownership="none">
756             <doc xml:space="preserve">A #RegressAnnotationObject</doc>
757             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
758           </instance-parameter>
759           <parameter name="func"
760                      transfer-ownership="none"
761                      scope="notified"
762                      closure="1"
763                      destroy="2">
764             <doc xml:space="preserve">The callback</doc>
765             <type name="AnnotationForeachFunc"
766                   c:type="RegressAnnotationForeachFunc"/>
767           </parameter>
768           <parameter name="user_data"
769                      transfer-ownership="none"
770                      nullable="1"
771                      allow-none="1">
772             <doc xml:space="preserve">The callback data</doc>
773             <type name="gpointer" c:type="gpointer"/>
774           </parameter>
775           <parameter name="destroy" transfer-ownership="none" scope="async">
776             <doc xml:space="preserve">Destroy notification</doc>
777             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
778           </parameter>
779         </parameters>
780       </method>
781       <method name="with_voidp"
782               c:identifier="regress_annotation_object_with_voidp">
783         <return-value transfer-ownership="none">
784           <type name="none" c:type="void"/>
785         </return-value>
786         <parameters>
787           <instance-parameter name="object" transfer-ownership="none">
788             <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
789           </instance-parameter>
790           <parameter name="data"
791                      transfer-ownership="none"
792                      nullable="1"
793                      allow-none="1">
794             <doc xml:space="preserve">Opaque pointer handle</doc>
795             <type name="gpointer" c:type="void*"/>
796           </parameter>
797         </parameters>
798       </method>
799       <property name="function-property"
800                 writable="1"
801                 construct="1"
802                 transfer-ownership="none">
803         <type name="AnnotationCallback" c:type="gpointer"/>
804       </property>
805       <property name="string-property"
806                 version="1.0"
807                 deprecated="1"
808                 deprecated-version="1.2"
809                 writable="1"
810                 construct="1"
811                 transfer-ownership="none">
812         <doc xml:space="preserve">This is a property which is a string</doc>
813         <doc-deprecated xml:space="preserve">Use better-string-property instead</doc-deprecated>
814         <type name="utf8" c:type="gchar*"/>
815       </property>
816       <property name="tab-property"
817                 version="1.2"
818                 writable="1"
819                 construct="1"
820                 transfer-ownership="none">
821         <doc xml:space="preserve">This is a property annotation intentionally indented with a mix
822 of tabs and strings to test the tab handling capabilities of the scanner.</doc>
823         <type name="utf8" c:type="gchar*"/>
824       </property>
825       <field name="parent_instance">
826         <type name="GObject.Object" c:type="GObject"/>
827       </field>
828       <glib:signal name="attribute-signal" when="last">
829         <doc xml:space="preserve">This signal tests a signal with attributes.</doc>
830         <return-value transfer-ownership="full">
831           <attribute name="some.annotation.foo3" value="val3"/>
832           <doc xml:space="preserve">the return value</doc>
833           <type name="utf8" c:type="gchar*"/>
834         </return-value>
835         <parameters>
836           <parameter name="arg1" transfer-ownership="none">
837             <attribute name="some.annotation.foo1" value="val1"/>
838             <doc xml:space="preserve">a value</doc>
839             <type name="utf8" c:type="gchar*"/>
840           </parameter>
841           <parameter name="arg2" transfer-ownership="none">
842             <attribute name="some.annotation.foo2" value="val2"/>
843             <doc xml:space="preserve">another value</doc>
844             <type name="utf8" c:type="gchar*"/>
845           </parameter>
846         </parameters>
847       </glib:signal>
848       <glib:signal name="doc-empty-arg-parsing" when="last">
849         <doc xml:space="preserve">This signal tests an empty document argument (@arg1)</doc>
850         <return-value transfer-ownership="none">
851           <type name="none" c:type="void"/>
852         </return-value>
853         <parameters>
854           <parameter name="arg1"
855                      transfer-ownership="none"
856                      nullable="1"
857                      allow-none="1">
858             <type name="gpointer" c:type="gpointer"/>
859           </parameter>
860         </parameters>
861       </glib:signal>
862       <glib:signal name="list-signal" when="last">
863         <doc xml:space="preserve">This is a signal which takes a list of strings, but it's not
864 known by GObject as it's only marked as G_TYPE_POINTER</doc>
865         <return-value transfer-ownership="none">
866           <type name="none" c:type="void"/>
867         </return-value>
868         <parameters>
869           <parameter name="list" transfer-ownership="container">
870             <doc xml:space="preserve">a list of strings</doc>
871             <type name="GLib.List" c:type="gpointer">
872               <type name="utf8"/>
873             </type>
874           </parameter>
875         </parameters>
876       </glib:signal>
877       <glib:signal name="string-signal"
878                    when="last"
879                    version="1.0"
880                    deprecated="1"
881                    deprecated-version="1.2">
882         <doc xml:space="preserve">This is a signal which has a broken signal handler,
883 it says it's pointer but it's actually a string.</doc>
884         <doc-deprecated xml:space="preserve">Use other-signal instead</doc-deprecated>
885         <return-value transfer-ownership="none">
886           <type name="none" c:type="void"/>
887         </return-value>
888         <parameters>
889           <parameter name="string" transfer-ownership="none">
890             <doc xml:space="preserve">a string</doc>
891             <type name="utf8" c:type="gpointer"/>
892           </parameter>
893         </parameters>
894       </glib:signal>
895     </class>
896     <record name="AnnotationObjectClass"
897             c:type="RegressAnnotationObjectClass"
898             glib:is-gtype-struct-for="AnnotationObject">
899       <field name="parent_class">
900         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
901       </field>
902     </record>
903     <record name="AnnotationStruct" c:type="RegressAnnotationStruct">
904       <doc xml:space="preserve">This is a test of an array of object in an field of a struct.</doc>
905       <field name="objects" writable="1">
906         <array zero-terminated="0"
907                c:type="RegressAnnotationObject"
908                fixed-size="10">
909           <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
910         </array>
911       </field>
912     </record>
913     <record name="AnonymousUnionAndStruct"
914             c:type="RegressAnonymousUnionAndStruct">
915       <field name="x" writable="1">
916         <type name="gint" c:type="int"/>
917       </field>
918       <union>
919         <record>
920           <field name="a" writable="1">
921             <type name="LikeGnomeKeyringPasswordSchema"
922                   c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
923           </field>
924           <field name="b" writable="1">
925             <type name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem*"/>
926           </field>
927         </record>
928         <field name="padding" writable="1">
929           <array zero-terminated="0" c:type="guint" fixed-size="4">
930             <type name="guint" c:type="guint"/>
931           </array>
932         </field>
933       </union>
934     </record>
935     <constant name="BOOL_CONSTANT" value="true" c:type="REGRESS_BOOL_CONSTANT">
936       <type name="gboolean" c:type="gboolean"/>
937     </constant>
938     <constant name="DOUBLE_CONSTANT"
939               value="44.220000"
940               c:type="REGRESS_DOUBLE_CONSTANT">
941       <type name="gdouble" c:type="gdouble"/>
942     </constant>
943     <constant name="FOO_DEFINE_SHOULD_BE_EXPOSED"
944               value="should be exposed"
945               c:type="REGRESS_FOO_DEFINE_SHOULD_BE_EXPOSED">
946       <type name="utf8" c:type="gchar*"/>
947     </constant>
948     <constant name="FOO_PIE_IS_TASTY"
949               value="3.141590"
950               c:type="REGRESS_FOO_PIE_IS_TASTY">
951       <type name="gdouble" c:type="gdouble"/>
952     </constant>
953     <constant name="FOO_SUCCESS_INT"
954               value="4408"
955               c:type="REGRESS_FOO_SUCCESS_INT">
956       <type name="gint" c:type="gint"/>
957     </constant>
958     <enumeration name="FooASingle" c:type="RegressFooASingle">
959       <member name="foo_some_single_enum"
960               value="0"
961               c:identifier="REGRESS_FOO_SOME_SINGLE_ENUM">
962       </member>
963     </enumeration>
964     <enumeration name="FooAddressType" c:type="RegressFooAddressType">
965       <member name="invalid"
966               value="0"
967               c:identifier="REGRESS_FOO_ADDRESS_INVALID">
968       </member>
969       <member name="ipv4" value="1" c:identifier="REGRESS_FOO_ADDRESS_IPV4">
970       </member>
971       <member name="ipv6" value="2" c:identifier="REGRESS_FOO_ADDRESS_IPV6">
972       </member>
973     </enumeration>
974     <record name="FooBRect"
975             c:type="RegressFooBRect"
976             glib:type-name="RegressFooBRect"
977             glib:get-type="regress_foo_brect_get_type"
978             c:symbol-prefix="foo_brect">
979       <field name="x" writable="1">
980         <type name="gdouble" c:type="double"/>
981       </field>
982       <field name="y" writable="1">
983         <type name="gdouble" c:type="double"/>
984       </field>
985       <constructor name="new" c:identifier="regress_foo_brect_new">
986         <return-value transfer-ownership="full">
987           <type name="FooBRect" c:type="RegressFooBRect*"/>
988         </return-value>
989         <parameters>
990           <parameter name="x" transfer-ownership="none">
991             <type name="gdouble" c:type="double"/>
992           </parameter>
993           <parameter name="y" transfer-ownership="none">
994             <type name="gdouble" c:type="double"/>
995           </parameter>
996         </parameters>
997       </constructor>
998       <method name="add" c:identifier="regress_foo_brect_add">
999         <return-value transfer-ownership="none">
1000           <type name="none" c:type="void"/>
1001         </return-value>
1002         <parameters>
1003           <instance-parameter name="b1" transfer-ownership="none">
1004             <type name="FooBRect" c:type="RegressFooBRect*"/>
1005           </instance-parameter>
1006           <parameter name="b2" transfer-ownership="none">
1007             <type name="FooBRect" c:type="RegressFooBRect*"/>
1008           </parameter>
1009         </parameters>
1010       </method>
1011     </record>
1012     <union name="FooBUnion"
1013            c:type="RegressFooBUnion"
1014            glib:type-name="RegressFooBUnion"
1015            glib:get-type="regress_foo_bunion_get_type"
1016            c:symbol-prefix="foo_bunion">
1017       <field name="type" writable="1">
1018         <type name="gint" c:type="int"/>
1019       </field>
1020       <field name="v" writable="1">
1021         <type name="gdouble" c:type="double"/>
1022       </field>
1023       <field name="rect" writable="1">
1024         <type name="FooBRect" c:type="RegressFooBRect*"/>
1025       </field>
1026       <constructor name="new" c:identifier="regress_foo_bunion_new">
1027         <return-value transfer-ownership="full">
1028           <type name="FooBUnion" c:type="RegressFooBUnion*"/>
1029         </return-value>
1030       </constructor>
1031       <method name="get_contained_type"
1032               c:identifier="regress_foo_bunion_get_contained_type">
1033         <return-value transfer-ownership="none">
1034           <type name="gint" c:type="int"/>
1035         </return-value>
1036         <parameters>
1037           <instance-parameter name="bunion" transfer-ownership="none">
1038             <type name="FooBUnion" c:type="RegressFooBUnion*"/>
1039           </instance-parameter>
1040         </parameters>
1041       </method>
1042     </union>
1043     <record name="FooBoxed"
1044             c:type="RegressFooBoxed"
1045             glib:type-name="RegressFooBoxed"
1046             glib:get-type="regress_foo_boxed_get_type"
1047             c:symbol-prefix="foo_boxed">
1048       <constructor name="new" c:identifier="regress_foo_boxed_new">
1049         <return-value transfer-ownership="full">
1050           <type name="FooBoxed" c:type="RegressFooBoxed*"/>
1051         </return-value>
1052       </constructor>
1053       <method name="method" c:identifier="regress_foo_boxed_method">
1054         <return-value transfer-ownership="none">
1055           <type name="none" c:type="void"/>
1056         </return-value>
1057         <parameters>
1058           <instance-parameter name="boxed" transfer-ownership="none">
1059             <type name="FooBoxed" c:type="RegressFooBoxed*"/>
1060           </instance-parameter>
1061         </parameters>
1062       </method>
1063     </record>
1064     <class name="FooBuffer"
1065            c:symbol-prefix="foo_buffer"
1066            c:type="RegressFooBuffer"
1067            parent="FooObject"
1068            glib:type-name="RegressFooBuffer"
1069            glib:get-type="regress_foo_buffer_get_type"
1070            glib:type-struct="FooBufferClass">
1071       <implements name="FooInterface"/>
1072       <method name="some_method" c:identifier="regress_foo_buffer_some_method">
1073         <return-value transfer-ownership="none">
1074           <type name="none" c:type="void"/>
1075         </return-value>
1076         <parameters>
1077           <instance-parameter name="buffer" transfer-ownership="none">
1078             <type name="FooBuffer" c:type="RegressFooBuffer*"/>
1079           </instance-parameter>
1080         </parameters>
1081       </method>
1082     </class>
1083     <record name="FooBufferClass"
1084             c:type="RegressFooBufferClass"
1085             disguised="1"
1086             glib:is-gtype-struct-for="FooBuffer">
1087     </record>
1088     <callback name="FooCallback" c:type="RegressFooCallback">
1089       <return-value transfer-ownership="none">
1090         <type name="gboolean" c:type="gboolean"/>
1091       </return-value>
1092       <parameters>
1093         <parameter name="regress_foo" transfer-ownership="none">
1094           <type name="FooObject" c:type="RegressFooObject*"/>
1095         </parameter>
1096         <parameter name="b" transfer-ownership="none">
1097           <type name="gboolean" c:type="gboolean"/>
1098         </parameter>
1099         <parameter name="data"
1100                    transfer-ownership="none"
1101                    nullable="1"
1102                    allow-none="1">
1103           <type name="gpointer" c:type="gpointer"/>
1104         </parameter>
1105       </parameters>
1106     </callback>
1107     <record name="FooDBusData"
1108             c:type="RegressFooDBusData"
1109             glib:type-name="RegressFooDBusData"
1110             glib:get-type="regress_foo_dbus_data_get_type"
1111             c:symbol-prefix="foo_dbus_data">
1112       <method name="method" c:identifier="regress_foo_dbus_data_method">
1113         <return-value transfer-ownership="none">
1114           <type name="none" c:type="void"/>
1115         </return-value>
1116         <parameters>
1117           <instance-parameter name="dbusdata" transfer-ownership="none">
1118             <type name="FooDBusData" c:type="RegressFooDBusData*"/>
1119           </instance-parameter>
1120         </parameters>
1121       </method>
1122     </record>
1123     <enumeration name="FooEnumFullname" c:type="RegressFooEnumFullname">
1124       <member name="one"
1125               value="1"
1126               c:identifier="REGRESS_FOO_ENUM_FULLNAME_ONE">
1127       </member>
1128       <member name="two"
1129               value="2"
1130               c:identifier="REGRESS_FOO_ENUM_FULLNAME_TWO">
1131       </member>
1132       <member name="three"
1133               value="3"
1134               c:identifier="REGRESS_FOO_ENUM_FULLNAME_THREE">
1135       </member>
1136     </enumeration>
1137     <enumeration name="FooEnumNoType" c:type="RegressFooEnumNoType">
1138       <member name="un" value="1" c:identifier="REGRESS_FOO_ENUM_UN">
1139       </member>
1140       <member name="deux" value="2" c:identifier="REGRESS_FOO_ENUM_DEUX">
1141       </member>
1142       <member name="trois" value="3" c:identifier="REGRESS_FOO_ENUM_TROIS">
1143       </member>
1144       <member name="neuf" value="9" c:identifier="REGRESS_FOO_ENUM_NEUF">
1145       </member>
1146     </enumeration>
1147     <enumeration name="FooEnumType"
1148                  glib:type-name="RegressFooEnumType"
1149                  glib:get-type="regress_foo_enum_type_get_type"
1150                  c:type="RegressFooEnumType">
1151       <member name="alpha"
1152               value="0"
1153               c:identifier="REGRESS_FOO_ENUM_ALPHA"
1154               glib:nick="alpha">
1155       </member>
1156       <member name="beta"
1157               value="1"
1158               c:identifier="REGRESS_FOO_ENUM_BETA"
1159               glib:nick="beta">
1160       </member>
1161       <member name="delta"
1162               value="2"
1163               c:identifier="REGRESS_FOO_ENUM_DELTA"
1164               glib:nick="delta">
1165       </member>
1166       <function name="method" c:identifier="regress_foo_enum_type_method">
1167         <return-value transfer-ownership="none">
1168           <type name="gint" c:type="int"/>
1169         </return-value>
1170         <parameters>
1171           <parameter name="regress_foo_enum" transfer-ownership="none">
1172             <type name="FooEnumType" c:type="RegressFooEnumType"/>
1173           </parameter>
1174         </parameters>
1175       </function>
1176       <function name="returnv" c:identifier="regress_foo_enum_type_returnv">
1177         <return-value transfer-ownership="none">
1178           <type name="FooEnumType" c:type="RegressFooEnumType"/>
1179         </return-value>
1180         <parameters>
1181           <parameter name="x" transfer-ownership="none">
1182             <type name="gint" c:type="int"/>
1183           </parameter>
1184         </parameters>
1185       </function>
1186     </enumeration>
1187     <enumeration name="FooError"
1188                  glib:type-name="RegressFooError"
1189                  glib:get-type="regress_foo_error_get_type"
1190                  c:type="RegressFooError"
1191                  glib:error-domain="regress_foo-error-quark">
1192       <member name="good"
1193               value="0"
1194               c:identifier="REGRESS_FOO_ERROR_GOOD"
1195               glib:nick="good">
1196       </member>
1197       <member name="bad"
1198               value="1"
1199               c:identifier="REGRESS_FOO_ERROR_BAD"
1200               glib:nick="bad">
1201       </member>
1202       <member name="ugly"
1203               value="2"
1204               c:identifier="REGRESS_FOO_ERROR_UGLY"
1205               glib:nick="ugly">
1206       </member>
1207       <function name="quark" c:identifier="regress_foo_error_quark">
1208         <return-value transfer-ownership="none">
1209           <type name="GLib.Quark" c:type="GQuark"/>
1210         </return-value>
1211       </function>
1212     </enumeration>
1213     <union name="FooEvent" c:type="RegressFooEvent">
1214       <field name="type" writable="1">
1215         <type name="gint" c:type="int"/>
1216       </field>
1217       <field name="any" writable="1">
1218         <type name="FooEventAny" c:type="RegressFooEventAny"/>
1219       </field>
1220       <field name="expose" writable="1">
1221         <type name="FooEventExpose" c:type="RegressFooEventExpose"/>
1222       </field>
1223     </union>
1224     <record name="FooEventAny" c:type="RegressFooEventAny">
1225       <field name="send_event" writable="1">
1226         <type name="gint8" c:type="gint8"/>
1227       </field>
1228     </record>
1229     <record name="FooEventExpose" c:type="RegressFooEventExpose">
1230       <field name="send_event" writable="1">
1231         <type name="gint8" c:type="gint8"/>
1232       </field>
1233       <field name="count" writable="1">
1234         <type name="gint" c:type="gint"/>
1235       </field>
1236     </record>
1237     <bitfield name="FooFlagsNoType" c:type="RegressFooFlagsNoType">
1238       <member name="ett" value="1" c:identifier="REGRESS_FOO_FLAGS_ETT">
1239       </member>
1240       <member name="tva" value="2" c:identifier="REGRESS_FOO_FLAGS_TVA">
1241       </member>
1242       <member name="fyra" value="4" c:identifier="REGRESS_FOO_FLAGS_FYRA">
1243       </member>
1244     </bitfield>
1245     <bitfield name="FooFlagsType"
1246               glib:type-name="RegressFooFlagsType"
1247               glib:get-type="regress_foo_flags_type_get_type"
1248               c:type="RegressFooFlagsType">
1249       <member name="first"
1250               value="1"
1251               c:identifier="REGRESS_FOO_FLAGS_FIRST"
1252               glib:nick="first">
1253       </member>
1254       <member name="second"
1255               value="2"
1256               c:identifier="REGRESS_FOO_FLAGS_SECOND"
1257               glib:nick="second">
1258       </member>
1259       <member name="third"
1260               value="4"
1261               c:identifier="REGRESS_FOO_FLAGS_THIRD"
1262               glib:nick="third">
1263       </member>
1264     </bitfield>
1265     <record name="FooForeignStruct"
1266             c:type="RegressFooForeignStruct"
1267             foreign="1">
1268       <field name="regress_foo" writable="1">
1269         <type name="gint" c:type="int"/>
1270       </field>
1271       <constructor name="new" c:identifier="regress_foo_foreign_struct_new">
1272         <return-value transfer-ownership="full">
1273           <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
1274         </return-value>
1275       </constructor>
1276       <method name="copy" c:identifier="regress_foo_foreign_struct_copy">
1277         <return-value transfer-ownership="full">
1278           <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
1279         </return-value>
1280         <parameters>
1281           <instance-parameter name="original" transfer-ownership="none">
1282             <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
1283           </instance-parameter>
1284         </parameters>
1285       </method>
1286     </record>
1287     <interface name="FooInterface"
1288                c:symbol-prefix="foo_interface"
1289                c:type="RegressFooInterface"
1290                glib:type-name="RegressFooInterface"
1291                glib:get-type="regress_foo_interface_get_type"
1292                glib:type-struct="FooInterfaceIface">
1293       <function name="static_method"
1294                 c:identifier="regress_foo_interface_static_method">
1295         <return-value transfer-ownership="none">
1296           <type name="none" c:type="void"/>
1297         </return-value>
1298         <parameters>
1299           <parameter name="x" transfer-ownership="none">
1300             <type name="gint" c:type="int"/>
1301           </parameter>
1302         </parameters>
1303       </function>
1304       <virtual-method name="do_regress_foo" invoker="do_regress_foo">
1305         <return-value transfer-ownership="none">
1306           <type name="none" c:type="void"/>
1307         </return-value>
1308         <parameters>
1309           <instance-parameter name="self" transfer-ownership="none">
1310             <type name="FooInterface" c:type="RegressFooInterface*"/>
1311           </instance-parameter>
1312           <parameter name="x" transfer-ownership="none">
1313             <type name="gint" c:type="int"/>
1314           </parameter>
1315         </parameters>
1316       </virtual-method>
1317       <method name="do_regress_foo"
1318               c:identifier="regress_foo_interface_do_regress_foo">
1319         <return-value transfer-ownership="none">
1320           <type name="none" c:type="void"/>
1321         </return-value>
1322         <parameters>
1323           <instance-parameter name="iface" transfer-ownership="none">
1324             <type name="FooInterface" c:type="RegressFooInterface*"/>
1325           </instance-parameter>
1326           <parameter name="x" transfer-ownership="none">
1327             <type name="gint" c:type="int"/>
1328           </parameter>
1329         </parameters>
1330       </method>
1331     </interface>
1332     <record name="FooInterfaceIface"
1333             c:type="RegressFooInterfaceIface"
1334             glib:is-gtype-struct-for="FooInterface">
1335       <field name="parent_iface">
1336         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
1337       </field>
1338       <field name="do_regress_foo">
1339         <callback name="do_regress_foo">
1340           <return-value transfer-ownership="none">
1341             <type name="none" c:type="void"/>
1342           </return-value>
1343           <parameters>
1344             <parameter name="self" transfer-ownership="none">
1345               <type name="FooInterface" c:type="RegressFooInterface*"/>
1346             </parameter>
1347             <parameter name="x" transfer-ownership="none">
1348               <type name="gint" c:type="int"/>
1349             </parameter>
1350           </parameters>
1351         </callback>
1352       </field>
1353     </record>
1354     <class name="FooObject"
1355            c:symbol-prefix="foo_object"
1356            c:type="RegressFooObject"
1357            parent="GObject.Object"
1358            glib:type-name="RegressFooObject"
1359            glib:get-type="regress_foo_object_get_type"
1360            glib:type-struct="FooObjectClass">
1361       <implements name="FooInterface"/>
1362       <constructor name="new" c:identifier="regress_foo_object_new">
1363         <return-value transfer-ownership="full">
1364           <type name="FooObject" c:type="RegressFooObject*"/>
1365         </return-value>
1366       </constructor>
1367       <constructor name="new_as_super"
1368                    c:identifier="regress_foo_object_new_as_super">
1369         <return-value transfer-ownership="full">
1370           <type name="GObject.Object" c:type="GObject*"/>
1371         </return-value>
1372       </constructor>
1373       <function name="a_global_method"
1374                 c:identifier="regress_foo_object_a_global_method">
1375         <return-value transfer-ownership="none">
1376           <type name="none" c:type="void"/>
1377         </return-value>
1378         <parameters>
1379           <parameter name="obj" transfer-ownership="none">
1380             <type name="Utility.Object" c:type="UtilityObject*"/>
1381           </parameter>
1382         </parameters>
1383       </function>
1384       <function name="get_default"
1385                 c:identifier="regress_foo_object_get_default">
1386         <doc xml:space="preserve">This function is intended to match clutter_stage_get_default which
1387 uses a C sugar return type.</doc>
1388         <return-value transfer-ownership="none">
1389           <doc xml:space="preserve">The global #RegressFooSubobject</doc>
1390           <type name="FooSubobject" c:type="RegressFooObject*"/>
1391         </return-value>
1392       </function>
1393       <function name="static_meth"
1394                 c:identifier="regress_foo_object_static_meth">
1395         <return-value transfer-ownership="none">
1396           <type name="gint" c:type="int"/>
1397         </return-value>
1398       </function>
1399       <virtual-method name="read_fn" invoker="read">
1400         <doc xml:space="preserve">Read some stuff.</doc>
1401         <return-value transfer-ownership="none">
1402           <type name="none" c:type="void"/>
1403         </return-value>
1404         <parameters>
1405           <instance-parameter name="object" transfer-ownership="none">
1406             <doc xml:space="preserve">obj</doc>
1407             <type name="FooObject" c:type="RegressFooObject*"/>
1408           </instance-parameter>
1409           <parameter name="offset" transfer-ownership="none">
1410             <doc xml:space="preserve">offset</doc>
1411             <type name="gint" c:type="int"/>
1412           </parameter>
1413           <parameter name="length" transfer-ownership="none">
1414             <doc xml:space="preserve">length</doc>
1415             <type name="gint" c:type="int"/>
1416           </parameter>
1417         </parameters>
1418       </virtual-method>
1419       <virtual-method name="virtual_method" invoker="virtual_method">
1420         <return-value transfer-ownership="none">
1421           <type name="gboolean" c:type="gboolean"/>
1422         </return-value>
1423         <parameters>
1424           <instance-parameter name="object" transfer-ownership="none">
1425             <type name="FooObject" c:type="RegressFooObject*"/>
1426           </instance-parameter>
1427           <parameter name="first_param" transfer-ownership="none">
1428             <type name="gint" c:type="int"/>
1429           </parameter>
1430         </parameters>
1431       </virtual-method>
1432       <method name="append_new_stack_layer"
1433               c:identifier="regress_foo_object_append_new_stack_layer">
1434         <doc xml:space="preserve">This shouldn't be scanned as a constructor.</doc>
1435         <return-value transfer-ownership="none">
1436           <type name="FooOtherObject" c:type="RegressFooOtherObject*"/>
1437         </return-value>
1438         <parameters>
1439           <instance-parameter name="obj" transfer-ownership="none">
1440             <type name="FooObject" c:type="RegressFooObject*"/>
1441           </instance-parameter>
1442           <parameter name="x" transfer-ownership="none">
1443             <type name="gint" c:type="int"/>
1444           </parameter>
1445         </parameters>
1446       </method>
1447       <method name="dup_name" c:identifier="regress_foo_object_dup_name">
1448         <return-value transfer-ownership="full">
1449           <type name="utf8" c:type="char*"/>
1450         </return-value>
1451         <parameters>
1452           <instance-parameter name="object" transfer-ownership="none">
1453             <type name="FooObject" c:type="RegressFooObject*"/>
1454           </instance-parameter>
1455         </parameters>
1456       </method>
1457       <method name="external_type"
1458               c:identifier="regress_foo_object_external_type">
1459         <return-value transfer-ownership="none">
1460           <doc xml:space="preserve">%NULL always</doc>
1461           <type name="Utility.Object" c:type="UtilityObject*"/>
1462         </return-value>
1463         <parameters>
1464           <instance-parameter name="object" transfer-ownership="none">
1465             <doc xml:space="preserve">a #RegressFooObject</doc>
1466             <type name="FooObject" c:type="RegressFooObject*"/>
1467           </instance-parameter>
1468         </parameters>
1469       </method>
1470       <method name="get_name" c:identifier="regress_foo_object_get_name">
1471         <return-value transfer-ownership="none">
1472           <type name="utf8" c:type="const char*"/>
1473         </return-value>
1474         <parameters>
1475           <instance-parameter name="object" transfer-ownership="none">
1476             <type name="FooObject" c:type="RegressFooObject*"/>
1477           </instance-parameter>
1478         </parameters>
1479       </method>
1480       <method name="handle_glyph"
1481               c:identifier="regress_foo_object_handle_glyph">
1482         <return-value transfer-ownership="none">
1483           <type name="none" c:type="void"/>
1484         </return-value>
1485         <parameters>
1486           <instance-parameter name="object" transfer-ownership="none">
1487             <type name="FooObject" c:type="RegressFooObject*"/>
1488           </instance-parameter>
1489           <parameter name="glyph" transfer-ownership="none">
1490             <type name="Utility.Glyph" c:type="UtilityGlyph"/>
1491           </parameter>
1492         </parameters>
1493       </method>
1494       <method name="is_it_time_yet"
1495               c:identifier="regress_foo_object_is_it_time_yet">
1496         <return-value transfer-ownership="none">
1497           <type name="none" c:type="void"/>
1498         </return-value>
1499         <parameters>
1500           <instance-parameter name="object" transfer-ownership="none">
1501             <type name="FooObject" c:type="RegressFooObject*"/>
1502           </instance-parameter>
1503           <parameter name="time" transfer-ownership="none">
1504             <type name="glong" c:type="time_t"/>
1505           </parameter>
1506         </parameters>
1507       </method>
1508       <method name="new_cookie"
1509               c:identifier="regress_foo_object_new_cookie"
1510               introspectable="0">
1511         <doc xml:space="preserve">Not sure why this test is here...</doc>
1512         <return-value transfer-ownership="none">
1513           <type name="FooObjectCookie" c:type="RegressFooObjectCookie"/>
1514         </return-value>
1515         <parameters>
1516           <instance-parameter name="object" transfer-ownership="none">
1517             <type name="FooObject" c:type="RegressFooObject*"/>
1518           </instance-parameter>
1519           <parameter name="target" transfer-ownership="none">
1520             <type name="utf8" c:type="const char*"/>
1521           </parameter>
1522         </parameters>
1523       </method>
1524       <method name="read" c:identifier="regress_foo_object_read">
1525         <doc xml:space="preserve">Read some stuff.</doc>
1526         <return-value transfer-ownership="none">
1527           <type name="none" c:type="void"/>
1528         </return-value>
1529         <parameters>
1530           <instance-parameter name="object" transfer-ownership="none">
1531             <doc xml:space="preserve">obj</doc>
1532             <type name="FooObject" c:type="RegressFooObject*"/>
1533           </instance-parameter>
1534           <parameter name="offset" transfer-ownership="none">
1535             <doc xml:space="preserve">offset</doc>
1536             <type name="gint" c:type="int"/>
1537           </parameter>
1538           <parameter name="length" transfer-ownership="none">
1539             <doc xml:space="preserve">length</doc>
1540             <type name="gint" c:type="int"/>
1541           </parameter>
1542         </parameters>
1543       </method>
1544       <method name="skipped_method"
1545               c:identifier="regress_foo_object_skipped_method"
1546               introspectable="0">
1547         <doc xml:space="preserve">This is only useful from C.</doc>
1548         <return-value transfer-ownership="none">
1549           <type name="none" c:type="void"/>
1550         </return-value>
1551         <parameters>
1552           <instance-parameter name="object" transfer-ownership="none">
1553             <doc xml:space="preserve">obj</doc>
1554             <type name="FooObject" c:type="RegressFooObject*"/>
1555           </instance-parameter>
1556         </parameters>
1557       </method>
1558       <method name="take_all"
1559               c:identifier="regress_foo_object_take_all"
1560               introspectable="0">
1561         <return-value transfer-ownership="none">
1562           <type name="none" c:type="void"/>
1563         </return-value>
1564         <parameters>
1565           <instance-parameter name="object" transfer-ownership="none">
1566             <type name="FooObject" c:type="RegressFooObject*"/>
1567           </instance-parameter>
1568           <parameter name="x" transfer-ownership="none">
1569             <type name="gint" c:type="int"/>
1570           </parameter>
1571           <parameter name="..." transfer-ownership="none">
1572             <varargs/>
1573           </parameter>
1574         </parameters>
1575       </method>
1576       <method name="various" c:identifier="regress_foo_object_various">
1577         <return-value transfer-ownership="none">
1578           <type name="none" c:type="void"/>
1579         </return-value>
1580         <parameters>
1581           <instance-parameter name="object" transfer-ownership="none">
1582             <type name="FooObject" c:type="RegressFooObject*"/>
1583           </instance-parameter>
1584           <parameter name="data"
1585                      transfer-ownership="none"
1586                      nullable="1"
1587                      allow-none="1">
1588             <type name="gpointer" c:type="void*"/>
1589           </parameter>
1590           <parameter name="some_type" transfer-ownership="none">
1591             <type name="GType" c:type="GType"/>
1592           </parameter>
1593         </parameters>
1594       </method>
1595       <method name="virtual_method"
1596               c:identifier="regress_foo_object_virtual_method">
1597         <return-value transfer-ownership="none">
1598           <type name="gboolean" c:type="gboolean"/>
1599         </return-value>
1600         <parameters>
1601           <instance-parameter name="object" transfer-ownership="none">
1602             <type name="FooObject" c:type="RegressFooObject*"/>
1603           </instance-parameter>
1604           <parameter name="first_param" transfer-ownership="none">
1605             <type name="gint" c:type="int"/>
1606           </parameter>
1607         </parameters>
1608       </method>
1609       <property name="hidden"
1610                 introspectable="0"
1611                 writable="1"
1612                 construct-only="1"
1613                 transfer-ownership="none">
1614         <type/>
1615       </property>
1616       <property name="string"
1617                 writable="1"
1618                 construct="1"
1619                 transfer-ownership="none">
1620         <type name="utf8" c:type="gchar*"/>
1621       </property>
1622       <field name="parent_instance">
1623         <type name="GObject.Object" c:type="GObject"/>
1624       </field>
1625       <field name="some_int">
1626         <type name="gint" c:type="int"/>
1627       </field>
1628       <glib:signal name="signal" when="last">
1629         <return-value transfer-ownership="full">
1630           <type name="utf8" c:type="gchar*"/>
1631         </return-value>
1632         <parameters>
1633           <parameter name="object" transfer-ownership="none">
1634             <type name="GObject.Object"/>
1635           </parameter>
1636           <parameter name="p0"
1637                      transfer-ownership="none"
1638                      nullable="1"
1639                      allow-none="1">
1640             <type name="gpointer" c:type="gpointer"/>
1641           </parameter>
1642         </parameters>
1643       </glib:signal>
1644     </class>
1645     <record name="FooObjectClass"
1646             c:type="RegressFooObjectClass"
1647             glib:is-gtype-struct-for="FooObject">
1648       <field name="parent_class">
1649         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1650       </field>
1651       <field name="virtual_method">
1652         <callback name="virtual_method">
1653           <return-value transfer-ownership="none">
1654             <type name="gboolean" c:type="gboolean"/>
1655           </return-value>
1656           <parameters>
1657             <parameter name="object" transfer-ownership="none">
1658               <type name="FooObject" c:type="RegressFooObject*"/>
1659             </parameter>
1660             <parameter name="first_param" transfer-ownership="none">
1661               <type name="gint" c:type="int"/>
1662             </parameter>
1663           </parameters>
1664         </callback>
1665       </field>
1666       <field name="read_fn">
1667         <callback name="read_fn">
1668           <return-value transfer-ownership="none">
1669             <type name="none" c:type="void"/>
1670           </return-value>
1671           <parameters>
1672             <parameter name="object" transfer-ownership="none">
1673               <doc xml:space="preserve">obj</doc>
1674               <type name="FooObject" c:type="RegressFooObject*"/>
1675             </parameter>
1676             <parameter name="offset" transfer-ownership="none">
1677               <doc xml:space="preserve">offset</doc>
1678               <type name="gint" c:type="int"/>
1679             </parameter>
1680             <parameter name="length" transfer-ownership="none">
1681               <doc xml:space="preserve">length</doc>
1682               <type name="gint" c:type="int"/>
1683             </parameter>
1684           </parameters>
1685         </callback>
1686       </field>
1687       <field name="_reserved">
1688         <array zero-terminated="0" c:type="GCallback" fixed-size="4">
1689           <type name="GObject.Callback" c:type="GCallback"/>
1690         </array>
1691       </field>
1692     </record>
1693     <class name="FooOtherObject"
1694            c:symbol-prefix="foo_other_object"
1695            c:type="RegressFooOtherObject"
1696            parent="GObject.Object"
1697            glib:type-name="RegressFooOtherObject"
1698            glib:get-type="regress_foo_other_object_get_type"
1699            glib:type-struct="FooOtherObjectClass">
1700     </class>
1701     <record name="FooOtherObjectClass"
1702             c:type="RegressFooOtherObjectClass"
1703             disguised="1"
1704             glib:is-gtype-struct-for="FooOtherObject">
1705     </record>
1706     <record name="FooRectangle" c:type="RegressFooRectangle">
1707       <field name="x" writable="1">
1708         <type name="gint" c:type="gint"/>
1709       </field>
1710       <field name="y" writable="1">
1711         <type name="gint" c:type="gint"/>
1712       </field>
1713       <field name="width" writable="1">
1714         <type name="gint" c:type="gint"/>
1715       </field>
1716       <field name="height" writable="1">
1717         <type name="gint" c:type="gint"/>
1718       </field>
1719       <method name="add" c:identifier="regress_foo_rectangle_add">
1720         <return-value transfer-ownership="none">
1721           <type name="none" c:type="void"/>
1722         </return-value>
1723         <parameters>
1724           <instance-parameter name="r1"
1725                               direction="inout"
1726                               caller-allocates="0"
1727                               transfer-ownership="full">
1728             <doc xml:space="preserve">add to this rect</doc>
1729             <type name="FooRectangle" c:type="RegressFooRectangle*"/>
1730           </instance-parameter>
1731           <parameter name="r2" transfer-ownership="none">
1732             <doc xml:space="preserve">source rectangle</doc>
1733             <type name="FooRectangle" c:type="const RegressFooRectangle*"/>
1734           </parameter>
1735         </parameters>
1736       </method>
1737       <function name="new"
1738                 c:identifier="regress_foo_rectangle_new"
1739                 introspectable="0">
1740         <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
1741 it because it's not a boxed type.</doc>
1742         <return-value>
1743           <type name="FooRectangle" c:type="RegressFooRectangle*"/>
1744         </return-value>
1745         <parameters>
1746           <parameter name="x" transfer-ownership="none">
1747             <type name="gint" c:type="int"/>
1748           </parameter>
1749           <parameter name="y" transfer-ownership="none">
1750             <type name="gint" c:type="int"/>
1751           </parameter>
1752           <parameter name="width" transfer-ownership="none">
1753             <type name="gint" c:type="int"/>
1754           </parameter>
1755           <parameter name="height" transfer-ownership="none">
1756             <type name="gint" c:type="int"/>
1757           </parameter>
1758         </parameters>
1759       </function>
1760     </record>
1761     <enumeration name="FooSkippable"
1762                  introspectable="0"
1763                  c:type="RegressFooSkippable">
1764       <doc xml:space="preserve">Some type that is only interesting from C and should not be
1765 exposed to language bindings.</doc>
1766       <member name="one" value="0" c:identifier="REGRESS_FOO_SKIPPABLE_ONE">
1767         <doc xml:space="preserve">a skippable enum value</doc>
1768       </member>
1769       <member name="two" value="1" c:identifier="REGRESS_FOO_SKIPPABLE_TWO">
1770         <doc xml:space="preserve">another skippable enum value</doc>
1771       </member>
1772     </enumeration>
1773     <enumeration name="FooStackLayer" c:type="RegressFooStackLayer">
1774       <member name="desktop"
1775               value="0"
1776               c:identifier="REGRESS_FOO_LAYER_DESKTOP">
1777       </member>
1778       <member name="bottom" value="1" c:identifier="REGRESS_FOO_LAYER_BOTTOM">
1779       </member>
1780       <member name="normal" value="2" c:identifier="REGRESS_FOO_LAYER_NORMAL">
1781       </member>
1782       <member name="top" value="4" c:identifier="REGRESS_FOO_LAYER_TOP">
1783       </member>
1784       <member name="dock" value="4" c:identifier="REGRESS_FOO_LAYER_DOCK">
1785       </member>
1786       <member name="fullscreen"
1787               value="5"
1788               c:identifier="REGRESS_FOO_LAYER_FULLSCREEN">
1789       </member>
1790       <member name="focused_window"
1791               value="6"
1792               c:identifier="REGRESS_FOO_LAYER_FOCUSED_WINDOW">
1793       </member>
1794       <member name="override_redirect"
1795               value="7"
1796               c:identifier="REGRESS_FOO_LAYER_OVERRIDE_REDIRECT">
1797       </member>
1798       <member name="last" value="8" c:identifier="REGRESS_FOO_LAYER_LAST">
1799       </member>
1800     </enumeration>
1801     <record name="FooStruct" c:type="RegressFooStruct">
1802       <field name="priv" writable="1">
1803         <type name="FooStructPrivate" c:type="RegressFooStructPrivate*"/>
1804       </field>
1805       <field name="member" writable="1">
1806         <type name="gint" c:type="int"/>
1807       </field>
1808     </record>
1809     <record name="FooStructPrivate"
1810             c:type="RegressFooStructPrivate"
1811             disguised="1">
1812     </record>
1813     <interface name="FooSubInterface"
1814                c:symbol-prefix="foo_sub_interface"
1815                c:type="RegressFooSubInterface"
1816                glib:type-name="RegressFooSubInterface"
1817                glib:get-type="regress_foo_sub_interface_get_type"
1818                glib:type-struct="FooSubInterfaceIface">
1819       <prerequisite name="FooInterface"/>
1820       <virtual-method name="destroy_event">
1821         <return-value transfer-ownership="none">
1822           <type name="none" c:type="void"/>
1823         </return-value>
1824         <parameters>
1825           <instance-parameter name="self" transfer-ownership="none">
1826             <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1827           </instance-parameter>
1828         </parameters>
1829       </virtual-method>
1830       <virtual-method name="do_bar" invoker="do_bar">
1831         <return-value transfer-ownership="none">
1832           <type name="none" c:type="void"/>
1833         </return-value>
1834         <parameters>
1835           <instance-parameter name="self" transfer-ownership="none">
1836             <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1837           </instance-parameter>
1838         </parameters>
1839       </virtual-method>
1840       <virtual-method name="do_baz" invoker="do_baz">
1841         <return-value transfer-ownership="none">
1842           <type name="none" c:type="void"/>
1843         </return-value>
1844         <parameters>
1845           <instance-parameter name="self" transfer-ownership="none">
1846             <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1847           </instance-parameter>
1848           <parameter name="callback"
1849                      transfer-ownership="none"
1850                      scope="call"
1851                      closure="1">
1852             <type name="GObject.Callback" c:type="GCallback"/>
1853           </parameter>
1854           <parameter name="user_data"
1855                      transfer-ownership="none"
1856                      nullable="1"
1857                      allow-none="1"
1858                      closure="1">
1859             <type name="gpointer" c:type="gpointer"/>
1860           </parameter>
1861         </parameters>
1862       </virtual-method>
1863       <method name="do_bar" c:identifier="regress_foo_sub_interface_do_bar">
1864         <return-value transfer-ownership="none">
1865           <type name="none" c:type="void"/>
1866         </return-value>
1867         <parameters>
1868           <instance-parameter name="self" transfer-ownership="none">
1869             <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1870           </instance-parameter>
1871         </parameters>
1872       </method>
1873       <method name="do_baz" c:identifier="regress_foo_sub_interface_do_baz">
1874         <return-value transfer-ownership="none">
1875           <type name="none" c:type="void"/>
1876         </return-value>
1877         <parameters>
1878           <instance-parameter name="self" transfer-ownership="none">
1879             <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1880           </instance-parameter>
1881           <parameter name="callback"
1882                      transfer-ownership="none"
1883                      scope="call"
1884                      closure="1">
1885             <type name="GObject.Callback" c:type="GCallback"/>
1886           </parameter>
1887           <parameter name="user_data"
1888                      transfer-ownership="none"
1889                      nullable="1"
1890                      allow-none="1">
1891             <type name="gpointer" c:type="gpointer"/>
1892           </parameter>
1893         </parameters>
1894       </method>
1895       <glib:signal name="destroy-event" when="last">
1896         <return-value transfer-ownership="none">
1897           <type name="none" c:type="void"/>
1898         </return-value>
1899       </glib:signal>
1900     </interface>
1901     <record name="FooSubInterfaceIface"
1902             c:type="RegressFooSubInterfaceIface"
1903             glib:is-gtype-struct-for="FooSubInterface">
1904       <field name="parent_iface">
1905         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
1906       </field>
1907       <field name="destroy_event">
1908         <callback name="destroy_event">
1909           <return-value transfer-ownership="none">
1910             <type name="none" c:type="void"/>
1911           </return-value>
1912           <parameters>
1913             <parameter name="self" transfer-ownership="none">
1914               <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1915             </parameter>
1916           </parameters>
1917         </callback>
1918       </field>
1919       <field name="do_bar">
1920         <callback name="do_bar">
1921           <return-value transfer-ownership="none">
1922             <type name="none" c:type="void"/>
1923           </return-value>
1924           <parameters>
1925             <parameter name="self" transfer-ownership="none">
1926               <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1927             </parameter>
1928           </parameters>
1929         </callback>
1930       </field>
1931       <field name="do_baz">
1932         <callback name="do_baz">
1933           <return-value transfer-ownership="none">
1934             <type name="none" c:type="void"/>
1935           </return-value>
1936           <parameters>
1937             <parameter name="self" transfer-ownership="none">
1938               <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
1939             </parameter>
1940             <parameter name="callback"
1941                        transfer-ownership="none"
1942                        scope="call"
1943                        closure="2">
1944               <type name="GObject.Callback" c:type="GCallback"/>
1945             </parameter>
1946             <parameter name="user_data"
1947                        transfer-ownership="none"
1948                        nullable="1"
1949                        allow-none="1"
1950                        closure="2">
1951               <type name="gpointer" c:type="gpointer"/>
1952             </parameter>
1953           </parameters>
1954         </callback>
1955       </field>
1956     </record>
1957     <class name="FooSubobject"
1958            c:symbol-prefix="foo_subobject"
1959            c:type="RegressFooSubobject"
1960            parent="FooObject"
1961            abstract="1"
1962            glib:type-name="RegressFooSubobject"
1963            glib:get-type="regress_foo_subobject_get_type"
1964            glib:type-struct="FooSubobjectClass">
1965       <implements name="FooInterface"/>
1966       <constructor name="new" c:identifier="regress_foo_subobject_new">
1967         <return-value transfer-ownership="full">
1968           <type name="FooSubobject" c:type="RegressFooSubobject*"/>
1969         </return-value>
1970       </constructor>
1971       <field name="parent_instance">
1972         <type name="FooObject" c:type="RegressFooObject"/>
1973       </field>
1974     </class>
1975     <record name="FooSubobjectClass"
1976             c:type="RegressFooSubobjectClass"
1977             glib:is-gtype-struct-for="FooSubobject">
1978       <field name="parent_class">
1979         <type name="FooObjectClass" c:type="RegressFooObjectClass"/>
1980       </field>
1981     </record>
1982     <record name="FooThingWithArray" c:type="RegressFooThingWithArray">
1983       <field name="x" writable="1">
1984         <type name="gint" c:type="int"/>
1985       </field>
1986       <field name="y" writable="1">
1987         <type name="gint" c:type="int"/>
1988       </field>
1989       <field name="lines" writable="1">
1990         <array zero-terminated="0" c:type="char" fixed-size="80">
1991           <type name="gchar" c:type="char"/>
1992         </array>
1993       </field>
1994       <field name="data" writable="1">
1995         <type name="guint8" c:type="guchar*"/>
1996       </field>
1997     </record>
1998     <union name="FooUnion" c:type="RegressFooUnion">
1999       <field name="regress_foo" writable="1">
2000         <type name="gint" c:type="int"/>
2001       </field>
2002     </union>
2003     <record name="FooUtilityStruct" c:type="RegressFooUtilityStruct">
2004       <field name="bar" writable="1">
2005         <type name="Utility.Struct" c:type="UtilityStruct"/>
2006       </field>
2007     </record>
2008     <callback name="FooVarargsCallback"
2009               c:type="RegressFooVarargsCallback"
2010               introspectable="0">
2011       <return-value transfer-ownership="none">
2012         <type name="none" c:type="void"/>
2013       </return-value>
2014       <parameters>
2015         <parameter name="param" transfer-ownership="none">
2016           <type name="utf8" c:type="const char*"/>
2017         </parameter>
2018         <parameter name="..." transfer-ownership="none">
2019           <varargs/>
2020         </parameter>
2021       </parameters>
2022     </callback>
2023     <constant name="GI_SCANNER_ELSE"
2024               value="3"
2025               c:type="REGRESS_GI_SCANNER_ELSE">
2026       <type name="gint" c:type="gint"/>
2027     </constant>
2028     <constant name="GI_SCANNER_IFDEF"
2029               value="3"
2030               c:type="REGRESS_GI_SCANNER_IFDEF">
2031       <type name="gint" c:type="gint"/>
2032     </constant>
2033     <constant name="GUINT64_CONSTANT"
2034               value="18446744073709551615"
2035               c:type="REGRESS_GUINT64_CONSTANT">
2036       <type name="guint64" c:type="guint64"/>
2037     </constant>
2038     <constant name="GUINT64_CONSTANTA"
2039               value="18446744073709551615"
2040               c:type="REGRESS_GUINT64_CONSTANTA">
2041       <type name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64"/>
2042     </constant>
2043     <constant name="G_GINT64_CONSTANT"
2044               value="1000"
2045               c:type="REGRESS_G_GINT64_CONSTANT">
2046       <type name="gint64" c:type="gint64"/>
2047     </constant>
2048     <constant name="INT_CONSTANT" value="4422" c:type="REGRESS_INT_CONSTANT">
2049       <type name="gint" c:type="gint"/>
2050     </constant>
2051     <record name="Intset" c:type="RegressIntset" disguised="1">
2052       <doc xml:space="preserve">Like telepathy-glib's TpIntset.</doc>
2053     </record>
2054     <constant name="LONG_STRING_CONSTANT"
2055               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"
2056               c:type="REGRESS_LONG_STRING_CONSTANT">
2057       <type name="utf8" c:type="gchar*"/>
2058     </constant>
2059     <record name="LikeGnomeKeyringPasswordSchema"
2060             c:type="RegressLikeGnomeKeyringPasswordSchema">
2061       <field name="dummy" writable="1">
2062         <type name="gint" c:type="int"/>
2063       </field>
2064       <field name="attributes" writable="1">
2065         <array zero-terminated="0" c:type="gpointer" fixed-size="32">
2066           <type name="gpointer" c:type="gpointer"/>
2067         </array>
2068       </field>
2069       <field name="dummy2" writable="1">
2070         <type name="gdouble" c:type="double"/>
2071       </field>
2072     </record>
2073     <record name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem">
2074       <field name="name" writable="1">
2075         <array zero-terminated="0" c:type="gchar" fixed-size="32">
2076           <type name="gchar" c:type="gchar"/>
2077         </array>
2078       </field>
2079       <method name="set_name"
2080               c:identifier="regress_like_xkl_config_item_set_name">
2081         <return-value transfer-ownership="none">
2082           <type name="none" c:type="void"/>
2083         </return-value>
2084         <parameters>
2085           <instance-parameter name="self" transfer-ownership="none">
2086             <type name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem*"/>
2087           </instance-parameter>
2088           <parameter name="name" transfer-ownership="none">
2089             <type name="utf8" c:type="const char*"/>
2090           </parameter>
2091         </parameters>
2092       </method>
2093     </record>
2094     <constant name="MAXUINT64"
2095               value="18446744073709551615"
2096               c:type="REGRESS_MAXUINT64">
2097       <type name="guint64" c:type="guint64"/>
2098     </constant>
2099     <constant name="MININT64"
2100               value="-9223372036854775808"
2101               c:type="REGRESS_MININT64">
2102       <type name="gint64" c:type="gint64"/>
2103     </constant>
2104     <constant name="Mixed_Case_Constant"
2105               value="4423"
2106               c:type="REGRESS_Mixed_Case_Constant">
2107       <type name="gint" c:type="gint"/>
2108     </constant>
2109     <constant name="NEGATIVE_INT_CONSTANT"
2110               value="-42"
2111               c:type="REGRESS_NEGATIVE_INT_CONSTANT">
2112       <type name="gint" c:type="gint"/>
2113     </constant>
2114     <constant name="STRING_CONSTANT"
2115               value="Some String"
2116               c:type="REGRESS_STRING_CONSTANT">
2117       <type name="utf8" c:type="gchar*"/>
2118     </constant>
2119     <record name="SkippedStructure"
2120             c:type="RegressSkippedStructure"
2121             introspectable="0">
2122       <doc xml:space="preserve">This should be skipped, and moreover, all function which
2123 use it should be.</doc>
2124       <field name="x" writable="1">
2125         <type name="gint" c:type="int"/>
2126       </field>
2127       <field name="v" writable="1">
2128         <type name="gdouble" c:type="double"/>
2129       </field>
2130     </record>
2131     <enumeration name="TestABCError"
2132                  glib:type-name="RegressTestABCError"
2133                  glib:get-type="regress_test_abc_error_get_type"
2134                  c:type="RegressTestABCError"
2135                  glib:error-domain="regress-test-abc-error">
2136       <member name="code1"
2137               value="1"
2138               c:identifier="REGRESS_TEST_ABC_ERROR_CODE1"
2139               glib:nick="code1">
2140       </member>
2141       <member name="code2"
2142               value="2"
2143               c:identifier="REGRESS_TEST_ABC_ERROR_CODE2"
2144               glib:nick="code2">
2145       </member>
2146       <member name="code3"
2147               value="3"
2148               c:identifier="REGRESS_TEST_ABC_ERROR_CODE3"
2149               glib:nick="code3">
2150       </member>
2151       <function name="quark" c:identifier="regress_test_abc_error_quark">
2152         <return-value transfer-ownership="none">
2153           <type name="GLib.Quark" c:type="GQuark"/>
2154         </return-value>
2155       </function>
2156     </enumeration>
2157     <record name="TestBoxed"
2158             c:type="RegressTestBoxed"
2159             glib:type-name="RegressTestBoxed"
2160             glib:get-type="regress_test_boxed_get_type"
2161             c:symbol-prefix="test_boxed">
2162       <field name="some_int8" writable="1">
2163         <type name="gint8" c:type="gint8"/>
2164       </field>
2165       <field name="nested_a" writable="1">
2166         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
2167       </field>
2168       <field name="priv" writable="1">
2169         <type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
2170       </field>
2171       <constructor name="new" c:identifier="regress_test_boxed_new">
2172         <return-value transfer-ownership="full">
2173           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2174         </return-value>
2175       </constructor>
2176       <constructor name="new_alternative_constructor1"
2177                    c:identifier="regress_test_boxed_new_alternative_constructor1">
2178         <return-value transfer-ownership="full">
2179           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2180         </return-value>
2181         <parameters>
2182           <parameter name="i" transfer-ownership="none">
2183             <type name="gint" c:type="int"/>
2184           </parameter>
2185         </parameters>
2186       </constructor>
2187       <constructor name="new_alternative_constructor2"
2188                    c:identifier="regress_test_boxed_new_alternative_constructor2">
2189         <return-value transfer-ownership="full">
2190           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2191         </return-value>
2192         <parameters>
2193           <parameter name="i" transfer-ownership="none">
2194             <type name="gint" c:type="int"/>
2195           </parameter>
2196           <parameter name="j" transfer-ownership="none">
2197             <type name="gint" c:type="int"/>
2198           </parameter>
2199         </parameters>
2200       </constructor>
2201       <constructor name="new_alternative_constructor3"
2202                    c:identifier="regress_test_boxed_new_alternative_constructor3">
2203         <return-value transfer-ownership="full">
2204           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2205         </return-value>
2206         <parameters>
2207           <parameter name="s" transfer-ownership="none">
2208             <type name="utf8" c:type="char*"/>
2209           </parameter>
2210         </parameters>
2211       </constructor>
2212       <method name="_not_a_method"
2213               c:identifier="regress_test_boxeds_not_a_method"
2214               moved-to="test_boxeds_not_a_method">
2215         <return-value transfer-ownership="none">
2216           <type name="none" c:type="void"/>
2217         </return-value>
2218         <parameters>
2219           <instance-parameter name="boxed" transfer-ownership="none">
2220             <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2221           </instance-parameter>
2222         </parameters>
2223       </method>
2224       <method name="copy" c:identifier="regress_test_boxed_copy">
2225         <return-value transfer-ownership="full">
2226           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2227         </return-value>
2228         <parameters>
2229           <instance-parameter name="boxed" transfer-ownership="none">
2230             <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2231           </instance-parameter>
2232         </parameters>
2233       </method>
2234       <method name="equals" c:identifier="regress_test_boxed_equals">
2235         <return-value transfer-ownership="none">
2236           <type name="gboolean" c:type="gboolean"/>
2237         </return-value>
2238         <parameters>
2239           <instance-parameter name="boxed" transfer-ownership="none">
2240             <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2241           </instance-parameter>
2242           <parameter name="other" transfer-ownership="none">
2243             <type name="TestBoxed" c:type="RegressTestBoxed*"/>
2244           </parameter>
2245         </parameters>
2246       </method>
2247     </record>
2248     <record name="TestBoxedB"
2249             c:type="RegressTestBoxedB"
2250             glib:type-name="RegressTestBoxedB"
2251             glib:get-type="regress_test_boxed_b_get_type"
2252             c:symbol-prefix="test_boxed_b">
2253       <field name="some_int8" writable="1">
2254         <type name="gint8" c:type="gint8"/>
2255       </field>
2256       <field name="some_long" writable="1">
2257         <type name="glong" c:type="glong"/>
2258       </field>
2259       <constructor name="new" c:identifier="regress_test_boxed_b_new">
2260         <return-value transfer-ownership="full">
2261           <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
2262         </return-value>
2263         <parameters>
2264           <parameter name="some_int8" transfer-ownership="none">
2265             <type name="gint8" c:type="gint8"/>
2266           </parameter>
2267           <parameter name="some_long" transfer-ownership="none">
2268             <type name="glong" c:type="glong"/>
2269           </parameter>
2270         </parameters>
2271       </constructor>
2272       <method name="copy" c:identifier="regress_test_boxed_b_copy">
2273         <return-value transfer-ownership="full">
2274           <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
2275         </return-value>
2276         <parameters>
2277           <instance-parameter name="boxed" transfer-ownership="none">
2278             <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
2279           </instance-parameter>
2280         </parameters>
2281       </method>
2282     </record>
2283     <record name="TestBoxedC"
2284             c:type="RegressTestBoxedC"
2285             glib:type-name="RegressTestBoxedC"
2286             glib:get-type="regress_test_boxed_c_get_type"
2287             c:symbol-prefix="test_boxed_c">
2288       <field name="refcount" writable="1">
2289         <type name="guint" c:type="guint"/>
2290       </field>
2291       <field name="another_thing" writable="1">
2292         <type name="guint" c:type="guint"/>
2293       </field>
2294       <constructor name="new" c:identifier="regress_test_boxed_c_new">
2295         <return-value transfer-ownership="full">
2296           <type name="TestBoxedC" c:type="RegressTestBoxedC*"/>
2297         </return-value>
2298       </constructor>
2299     </record>
2300     <record name="TestBoxedD"
2301             c:type="RegressTestBoxedD"
2302             glib:type-name="RegressTestBoxedD"
2303             glib:get-type="regress_test_boxed_d_get_type"
2304             c:symbol-prefix="test_boxed_d">
2305       <constructor name="new" c:identifier="regress_test_boxed_d_new">
2306         <return-value transfer-ownership="full">
2307           <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
2308         </return-value>
2309         <parameters>
2310           <parameter name="a_string" transfer-ownership="none">
2311             <type name="utf8" c:type="const char*"/>
2312           </parameter>
2313           <parameter name="a_int" transfer-ownership="none">
2314             <type name="gint" c:type="int"/>
2315           </parameter>
2316         </parameters>
2317       </constructor>
2318       <method name="copy" c:identifier="regress_test_boxed_d_copy">
2319         <return-value transfer-ownership="full">
2320           <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
2321         </return-value>
2322         <parameters>
2323           <instance-parameter name="boxed" transfer-ownership="none">
2324             <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
2325           </instance-parameter>
2326         </parameters>
2327       </method>
2328       <method name="free" c:identifier="regress_test_boxed_d_free">
2329         <return-value transfer-ownership="none">
2330           <type name="none" c:type="void"/>
2331         </return-value>
2332         <parameters>
2333           <instance-parameter name="boxed" transfer-ownership="none">
2334             <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
2335           </instance-parameter>
2336         </parameters>
2337       </method>
2338       <method name="get_magic" c:identifier="regress_test_boxed_d_get_magic">
2339         <return-value transfer-ownership="none">
2340           <type name="gint" c:type="int"/>
2341         </return-value>
2342         <parameters>
2343           <instance-parameter name="boxed" transfer-ownership="none">
2344             <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
2345           </instance-parameter>
2346         </parameters>
2347       </method>
2348     </record>
2349     <record name="TestBoxedPrivate"
2350             c:type="RegressTestBoxedPrivate"
2351             disguised="1">
2352     </record>
2353     <callback name="TestCallback" c:type="RegressTestCallback">
2354       <return-value transfer-ownership="none">
2355         <type name="gint" c:type="int"/>
2356       </return-value>
2357     </callback>
2358     <callback name="TestCallbackArray" c:type="RegressTestCallbackArray">
2359       <return-value transfer-ownership="none">
2360         <type name="gint" c:type="int"/>
2361       </return-value>
2362       <parameters>
2363         <parameter name="one" transfer-ownership="none">
2364           <array length="1" zero-terminated="0" c:type="int*">
2365             <type name="gint" c:type="int"/>
2366           </array>
2367         </parameter>
2368         <parameter name="one_length" transfer-ownership="none">
2369           <type name="gsize" c:type="gsize"/>
2370         </parameter>
2371         <parameter name="two" transfer-ownership="none">
2372           <array length="3" zero-terminated="0" c:type="char**">
2373             <type name="utf8"/>
2374           </array>
2375         </parameter>
2376         <parameter name="two_length" transfer-ownership="none">
2377           <type name="gint" c:type="int"/>
2378         </parameter>
2379       </parameters>
2380     </callback>
2381     <callback name="TestCallbackArrayInOut"
2382               c:type="RegressTestCallbackArrayInOut">
2383       <return-value transfer-ownership="none">
2384         <type name="none" c:type="void"/>
2385       </return-value>
2386       <parameters>
2387         <parameter name="ints"
2388                    direction="inout"
2389                    caller-allocates="0"
2390                    transfer-ownership="full">
2391           <array length="1" zero-terminated="0" c:type="int**">
2392             <type name="gint" c:type="int*"/>
2393           </array>
2394         </parameter>
2395         <parameter name="length"
2396                    direction="inout"
2397                    caller-allocates="0"
2398                    transfer-ownership="none">
2399           <type name="gint" c:type="int*"/>
2400         </parameter>
2401       </parameters>
2402     </callback>
2403     <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
2404       <return-value transfer-ownership="none">
2405         <type name="gint" c:type="int"/>
2406       </return-value>
2407       <parameters>
2408         <parameter name="foo" transfer-ownership="none">
2409           <doc xml:space="preserve">the investment rate</doc>
2410           <type name="gint" c:type="int"/>
2411         </parameter>
2412         <parameter name="bar" transfer-ownership="none">
2413           <doc xml:space="preserve">how much money</doc>
2414           <type name="gdouble" c:type="double"/>
2415         </parameter>
2416         <parameter name="path" transfer-ownership="none">
2417           <doc xml:space="preserve">Path to file</doc>
2418           <type name="filename" c:type="char*"/>
2419         </parameter>
2420       </parameters>
2421     </callback>
2422     <callback name="TestCallbackGError" c:type="RegressTestCallbackGError">
2423       <return-value transfer-ownership="none">
2424         <type name="none" c:type="void"/>
2425       </return-value>
2426       <parameters>
2427         <parameter name="error" transfer-ownership="none">
2428           <type name="GLib.Error" c:type="const GError*"/>
2429         </parameter>
2430       </parameters>
2431     </callback>
2432     <callback name="TestCallbackHashtable"
2433               c:type="RegressTestCallbackHashtable">
2434       <return-value transfer-ownership="none">
2435         <type name="none" c:type="void"/>
2436       </return-value>
2437       <parameters>
2438         <parameter name="data" transfer-ownership="none">
2439           <doc xml:space="preserve">a hash table; will be modified</doc>
2440           <type name="GLib.HashTable" c:type="GHashTable*">
2441             <type name="utf8"/>
2442             <type name="gint"/>
2443           </type>
2444         </parameter>
2445       </parameters>
2446     </callback>
2447     <callback name="TestCallbackOwnedGError"
2448               c:type="RegressTestCallbackOwnedGError">
2449       <return-value transfer-ownership="none">
2450         <type name="none" c:type="void"/>
2451       </return-value>
2452       <parameters>
2453         <parameter name="error" transfer-ownership="full">
2454           <doc xml:space="preserve">GError instance; must be freed by the callback</doc>
2455           <type name="GLib.Error" c:type="GError*"/>
2456         </parameter>
2457       </parameters>
2458     </callback>
2459     <callback name="TestCallbackReturnFull"
2460               c:type="RegressTestCallbackReturnFull">
2461       <return-value transfer-ownership="full">
2462         <type name="TestObj" c:type="RegressTestObj*"/>
2463       </return-value>
2464     </callback>
2465     <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
2466       <return-value transfer-ownership="none">
2467         <type name="gint" c:type="int"/>
2468       </return-value>
2469       <parameters>
2470         <parameter name="user_data"
2471                    transfer-ownership="none"
2472                    nullable="1"
2473                    allow-none="1"
2474                    closure="0">
2475           <type name="gpointer" c:type="gpointer"/>
2476         </parameter>
2477       </parameters>
2478     </callback>
2479     <enumeration name="TestDEFError"
2480                  c:type="RegressTestDEFError"
2481                  glib:error-domain="regress-test-def-error">
2482       <member name="code0"
2483               value="0"
2484               c:identifier="REGRESS_TEST_DEF_ERROR_CODE0">
2485       </member>
2486       <member name="code1"
2487               value="1"
2488               c:identifier="REGRESS_TEST_DEF_ERROR_CODE1">
2489       </member>
2490       <member name="code2"
2491               value="2"
2492               c:identifier="REGRESS_TEST_DEF_ERROR_CODE2">
2493       </member>
2494     </enumeration>
2495     <enumeration name="TestEnum"
2496                  glib:type-name="RegressTestEnum"
2497                  glib:get-type="regress_test_enum_get_type"
2498                  c:type="RegressTestEnum">
2499       <doc xml:space="preserve">By purpose, not all members have documentation</doc>
2500       <member name="value1"
2501               value="0"
2502               c:identifier="REGRESS_TEST_VALUE1"
2503               glib:nick="value1">
2504         <doc xml:space="preserve">value 1</doc>
2505       </member>
2506       <member name="value2"
2507               value="1"
2508               c:identifier="REGRESS_TEST_VALUE2"
2509               glib:nick="value2">
2510         <doc xml:space="preserve">value 2</doc>
2511       </member>
2512       <member name="value3"
2513               value="-1"
2514               c:identifier="REGRESS_TEST_VALUE3"
2515               glib:nick="value3">
2516       </member>
2517       <member name="value4"
2518               value="48"
2519               c:identifier="REGRESS_TEST_VALUE4"
2520               glib:nick="value4">
2521       </member>
2522       <function name="param" c:identifier="regress_test_enum_param">
2523         <return-value transfer-ownership="none">
2524           <type name="utf8" c:type="const gchar*"/>
2525         </return-value>
2526         <parameters>
2527           <parameter name="e" transfer-ownership="none">
2528             <type name="TestEnum" c:type="RegressTestEnum"/>
2529           </parameter>
2530         </parameters>
2531       </function>
2532     </enumeration>
2533     <enumeration name="TestEnumNoGEnum" c:type="RegressTestEnumNoGEnum">
2534       <member name="evalue1" value="0" c:identifier="REGRESS_TEST_EVALUE1">
2535       </member>
2536       <member name="evalue2" value="42" c:identifier="REGRESS_TEST_EVALUE2">
2537       </member>
2538       <member name="evalue3" value="48" c:identifier="REGRESS_TEST_EVALUE3">
2539       </member>
2540     </enumeration>
2541     <enumeration name="TestEnumUnsigned"
2542                  glib:type-name="RegressTestEnumUnsigned"
2543                  glib:get-type="regress_test_enum_unsigned_get_type"
2544                  c:type="RegressTestEnumUnsigned">
2545       <member name="value1"
2546               value="1"
2547               c:identifier="REGRESS_TEST_UNSIGNED_VALUE1"
2548               glib:nick="value1">
2549       </member>
2550       <member name="value2"
2551               value="2147483648"
2552               c:identifier="REGRESS_TEST_UNSIGNED_VALUE2"
2553               glib:nick="value2">
2554       </member>
2555     </enumeration>
2556     <enumeration name="TestError"
2557                  glib:type-name="RegressTestError"
2558                  glib:get-type="regress_test_error_get_type"
2559                  c:type="RegressTestError"
2560                  glib:error-domain="regress-test-error">
2561       <member name="code1"
2562               value="1"
2563               c:identifier="REGRESS_TEST_ERROR_CODE1"
2564               glib:nick="code1">
2565       </member>
2566       <member name="code2"
2567               value="2"
2568               c:identifier="REGRESS_TEST_ERROR_CODE2"
2569               glib:nick="code2">
2570       </member>
2571       <member name="code3"
2572               value="3"
2573               c:identifier="REGRESS_TEST_ERROR_CODE3"
2574               glib:nick="code3">
2575       </member>
2576       <function name="quark" c:identifier="regress_test_error_quark">
2577         <return-value transfer-ownership="none">
2578           <type name="GLib.Quark" c:type="GQuark"/>
2579         </return-value>
2580       </function>
2581     </enumeration>
2582     <callback name="TestExternallyDefinedCallback"
2583               c:type="RegressTestExternallyDefinedCallback">
2584       <return-value transfer-ownership="none">
2585         <type name="none" c:type="void"/>
2586       </return-value>
2587       <parameters>
2588         <parameter name="obj" transfer-ownership="none">
2589           <type name="TestObj" c:type="RegressTestObj*"/>
2590         </parameter>
2591         <parameter name="someint" transfer-ownership="none">
2592           <type name="gint" c:type="int"/>
2593         </parameter>
2594       </parameters>
2595     </callback>
2596     <bitfield name="TestFlags"
2597               glib:type-name="RegressTestFlags"
2598               glib:get-type="regress_test_flags_get_type"
2599               c:type="RegressTestFlags">
2600       <member name="flag1"
2601               value="1"
2602               c:identifier="TEST_FLAG1"
2603               glib:nick="flag1">
2604       </member>
2605       <member name="flag2"
2606               value="2"
2607               c:identifier="TEST_FLAG2"
2608               glib:nick="flag2">
2609       </member>
2610       <member name="flag3"
2611               value="4"
2612               c:identifier="TEST_FLAG3"
2613               glib:nick="flag3">
2614       </member>
2615     </bitfield>
2616     <class name="TestFloating"
2617            c:symbol-prefix="test_floating"
2618            c:type="RegressTestFloating"
2619            parent="GObject.InitiallyUnowned"
2620            glib:type-name="RegressTestFloating"
2621            glib:get-type="regress_test_floating_get_type"
2622            glib:type-struct="TestFloatingClass">
2623       <constructor name="new" c:identifier="regress_test_floating_new">
2624         <return-value transfer-ownership="none">
2625           <doc xml:space="preserve">A new floating #RegressTestFloating</doc>
2626           <type name="TestFloating" c:type="RegressTestFloating*"/>
2627         </return-value>
2628       </constructor>
2629       <field name="parent_instance">
2630         <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
2631       </field>
2632     </class>
2633     <record name="TestFloatingClass"
2634             c:type="RegressTestFloatingClass"
2635             glib:is-gtype-struct-for="TestFloating">
2636       <field name="parent_class">
2637         <type name="GObject.InitiallyUnownedClass"
2638               c:type="GInitiallyUnownedClass"/>
2639       </field>
2640     </record>
2641     <class name="TestFundamentalObject"
2642            c:symbol-prefix="test_fundamental_object"
2643            c:type="RegressTestFundamentalObject"
2644            abstract="1"
2645            glib:type-name="RegressTestFundamentalObject"
2646            glib:get-type="regress_test_fundamental_object_get_type"
2647            glib:type-struct="TestFundamentalObjectClass"
2648            glib:fundamental="1"
2649            glib:ref-func="regress_test_fundamental_object_ref"
2650            glib:unref-func="regress_test_fundamental_object_unref"
2651            glib:set-value-func="regress_test_value_set_fundamental_object"
2652            glib:get-value-func="regress_test_value_get_fundamental_object">
2653       <virtual-method name="copy">
2654         <return-value transfer-ownership="full">
2655           <type name="TestFundamentalObject"
2656                 c:type="RegressTestFundamentalObject*"/>
2657         </return-value>
2658         <parameters>
2659           <instance-parameter name="obj" transfer-ownership="none">
2660             <type name="TestFundamentalObject"
2661                   c:type="const RegressTestFundamentalObject*"/>
2662           </instance-parameter>
2663         </parameters>
2664       </virtual-method>
2665       <virtual-method name="finalize">
2666         <return-value transfer-ownership="none">
2667           <type name="none" c:type="void"/>
2668         </return-value>
2669         <parameters>
2670           <instance-parameter name="obj" transfer-ownership="none">
2671             <type name="TestFundamentalObject"
2672                   c:type="RegressTestFundamentalObject*"/>
2673           </instance-parameter>
2674         </parameters>
2675       </virtual-method>
2676       <method name="ref" c:identifier="regress_test_fundamental_object_ref">
2677         <return-value transfer-ownership="full">
2678           <doc xml:space="preserve">A new #RegressTestFundamentalObject</doc>
2679           <type name="TestFundamentalObject"
2680                 c:type="RegressTestFundamentalObject*"/>
2681         </return-value>
2682         <parameters>
2683           <instance-parameter name="fundamental_object"
2684                               transfer-ownership="none">
2685             <type name="TestFundamentalObject"
2686                   c:type="RegressTestFundamentalObject*"/>
2687           </instance-parameter>
2688         </parameters>
2689       </method>
2690       <method name="unref"
2691               c:identifier="regress_test_fundamental_object_unref">
2692         <return-value transfer-ownership="none">
2693           <type name="none" c:type="void"/>
2694         </return-value>
2695         <parameters>
2696           <instance-parameter name="fundamental_object"
2697                               transfer-ownership="none">
2698             <type name="TestFundamentalObject"
2699                   c:type="RegressTestFundamentalObject*"/>
2700           </instance-parameter>
2701         </parameters>
2702       </method>
2703       <field name="instance">
2704         <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
2705       </field>
2706       <field name="refcount">
2707         <type name="gint" c:type="gint"/>
2708       </field>
2709       <field name="flags">
2710         <type name="guint" c:type="guint"/>
2711       </field>
2712     </class>
2713     <record name="TestFundamentalObjectClass"
2714             c:type="RegressTestFundamentalObjectClass"
2715             glib:is-gtype-struct-for="TestFundamentalObject">
2716       <field name="type_class">
2717         <type name="GObject.TypeClass" c:type="GTypeClass"/>
2718       </field>
2719       <field name="copy">
2720         <type name="TestFundamentalObjectCopyFunction"
2721               c:type="RegressTestFundamentalObjectCopyFunction"/>
2722       </field>
2723       <field name="finalize">
2724         <type name="TestFundamentalObjectFinalizeFunction"
2725               c:type="RegressTestFundamentalObjectFinalizeFunction"/>
2726       </field>
2727     </record>
2728     <callback name="TestFundamentalObjectCopyFunction"
2729               c:type="RegressTestFundamentalObjectCopyFunction">
2730       <return-value transfer-ownership="full">
2731         <type name="TestFundamentalObject"
2732               c:type="RegressTestFundamentalObject*"/>
2733       </return-value>
2734       <parameters>
2735         <parameter name="obj" transfer-ownership="none">
2736           <type name="TestFundamentalObject"
2737                 c:type="const RegressTestFundamentalObject*"/>
2738         </parameter>
2739       </parameters>
2740     </callback>
2741     <callback name="TestFundamentalObjectFinalizeFunction"
2742               c:type="RegressTestFundamentalObjectFinalizeFunction">
2743       <return-value transfer-ownership="none">
2744         <type name="none" c:type="void"/>
2745       </return-value>
2746       <parameters>
2747         <parameter name="obj" transfer-ownership="none">
2748           <type name="TestFundamentalObject"
2749                 c:type="RegressTestFundamentalObject*"/>
2750         </parameter>
2751       </parameters>
2752     </callback>
2753     <class name="TestFundamentalSubObject"
2754            c:symbol-prefix="test_fundamental_sub_object"
2755            c:type="RegressTestFundamentalSubObject"
2756            parent="TestFundamentalObject"
2757            glib:type-name="RegressTestFundamentalSubObject"
2758            glib:get-type="regress_test_fundamental_sub_object_get_type"
2759            glib:type-struct="TestFundamentalSubObjectClass"
2760            glib:fundamental="1">
2761       <constructor name="new"
2762                    c:identifier="regress_test_fundamental_sub_object_new">
2763         <return-value transfer-ownership="full">
2764           <type name="TestFundamentalSubObject"
2765                 c:type="RegressTestFundamentalSubObject*"/>
2766         </return-value>
2767         <parameters>
2768           <parameter name="data" transfer-ownership="none">
2769             <type name="utf8" c:type="const char*"/>
2770           </parameter>
2771         </parameters>
2772       </constructor>
2773       <field name="fundamental_object">
2774         <type name="TestFundamentalObject"
2775               c:type="RegressTestFundamentalObject"/>
2776       </field>
2777       <field name="data">
2778         <type name="utf8" c:type="char*"/>
2779       </field>
2780     </class>
2781     <record name="TestFundamentalSubObjectClass"
2782             c:type="RegressTestFundamentalSubObjectClass"
2783             glib:is-gtype-struct-for="TestFundamentalSubObject">
2784       <field name="fundamental_object_class">
2785         <type name="TestFundamentalObjectClass"
2786               c:type="RegressTestFundamentalObjectClass"/>
2787       </field>
2788     </record>
2789     <class name="TestInheritDrawable"
2790            c:symbol-prefix="test_inherit_drawable"
2791            c:type="RegressTestInheritDrawable"
2792            parent="GObject.Object"
2793            abstract="1"
2794            glib:type-name="RegressTestInheritDrawable"
2795            glib:get-type="regress_test_inherit_drawable_get_type"
2796            glib:type-struct="TestInheritDrawableClass">
2797       <method name="do_foo"
2798               c:identifier="regress_test_inherit_drawable_do_foo">
2799         <return-value transfer-ownership="none">
2800           <type name="none" c:type="void"/>
2801         </return-value>
2802         <parameters>
2803           <instance-parameter name="drawable" transfer-ownership="none">
2804             <type name="TestInheritDrawable"
2805                   c:type="RegressTestInheritDrawable*"/>
2806           </instance-parameter>
2807           <parameter name="x" transfer-ownership="none">
2808             <type name="gint" c:type="int"/>
2809           </parameter>
2810         </parameters>
2811       </method>
2812       <method name="do_foo_maybe_throw"
2813               c:identifier="regress_test_inherit_drawable_do_foo_maybe_throw"
2814               throws="1">
2815         <return-value transfer-ownership="none">
2816           <type name="none" c:type="void"/>
2817         </return-value>
2818         <parameters>
2819           <instance-parameter name="drawable" transfer-ownership="none">
2820             <type name="TestInheritDrawable"
2821                   c:type="RegressTestInheritDrawable*"/>
2822           </instance-parameter>
2823           <parameter name="x" transfer-ownership="none">
2824             <type name="gint" c:type="int"/>
2825           </parameter>
2826         </parameters>
2827       </method>
2828       <method name="get_origin"
2829               c:identifier="regress_test_inherit_drawable_get_origin">
2830         <return-value transfer-ownership="none">
2831           <type name="none" c:type="void"/>
2832         </return-value>
2833         <parameters>
2834           <instance-parameter name="drawable" transfer-ownership="none">
2835             <type name="TestInheritDrawable"
2836                   c:type="RegressTestInheritDrawable*"/>
2837           </instance-parameter>
2838           <parameter name="x"
2839                      direction="out"
2840                      caller-allocates="0"
2841                      transfer-ownership="full">
2842             <type name="gint" c:type="int*"/>
2843           </parameter>
2844           <parameter name="y"
2845                      direction="out"
2846                      caller-allocates="0"
2847                      transfer-ownership="full">
2848             <type name="gint" c:type="int*"/>
2849           </parameter>
2850         </parameters>
2851       </method>
2852       <method name="get_size"
2853               c:identifier="regress_test_inherit_drawable_get_size">
2854         <return-value transfer-ownership="none">
2855           <type name="none" c:type="void"/>
2856         </return-value>
2857         <parameters>
2858           <instance-parameter name="drawable" transfer-ownership="none">
2859             <type name="TestInheritDrawable"
2860                   c:type="RegressTestInheritDrawable*"/>
2861           </instance-parameter>
2862           <parameter name="width"
2863                      direction="out"
2864                      caller-allocates="0"
2865                      transfer-ownership="full">
2866             <type name="guint" c:type="guint*"/>
2867           </parameter>
2868           <parameter name="height"
2869                      direction="out"
2870                      caller-allocates="0"
2871                      transfer-ownership="full">
2872             <type name="guint" c:type="guint*"/>
2873           </parameter>
2874         </parameters>
2875       </method>
2876       <field name="parent_instance">
2877         <type name="GObject.Object" c:type="GObject"/>
2878       </field>
2879     </class>
2880     <record name="TestInheritDrawableClass"
2881             c:type="RegressTestInheritDrawableClass"
2882             glib:is-gtype-struct-for="TestInheritDrawable">
2883       <field name="parent_class">
2884         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2885       </field>
2886     </record>
2887     <record name="TestInheritPixmapObjectClass"
2888             c:type="RegressTestInheritPixmapObjectClass">
2889       <field name="parent_class" writable="1">
2890         <type name="TestInheritDrawableClass"
2891               c:type="RegressTestInheritDrawableClass"/>
2892       </field>
2893     </record>
2894     <interface name="TestInterface"
2895                c:symbol-prefix="test_interface"
2896                c:type="RegressTestInterface"
2897                glib:type-name="RegressTestInterface"
2898                glib:get-type="regress_test_interface_get_type"
2899                glib:type-struct="TestInterfaceIface">
2900     </interface>
2901     <record name="TestInterfaceIface"
2902             c:type="RegressTestInterfaceIface"
2903             glib:is-gtype-struct-for="TestInterface">
2904       <field name="base_iface">
2905         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
2906       </field>
2907     </record>
2908     <callback name="TestNoPtrCallback" c:type="RegressTestNoPtrCallback">
2909       <return-value transfer-ownership="none">
2910         <type name="none" c:type="void"/>
2911       </return-value>
2912     </callback>
2913     <class name="TestObj"
2914            c:symbol-prefix="test_obj"
2915            c:type="RegressTestObj"
2916            parent="GObject.Object"
2917            glib:type-name="RegressTestObj"
2918            glib:get-type="regress_test_obj_get_type"
2919            glib:type-struct="TestObjClass">
2920       <constructor name="constructor" c:identifier="regress_constructor">
2921         <return-value transfer-ownership="full">
2922           <type name="TestObj" c:type="RegressTestObj*"/>
2923         </return-value>
2924       </constructor>
2925       <constructor name="new" c:identifier="regress_test_obj_new">
2926         <return-value transfer-ownership="full">
2927           <type name="TestObj" c:type="RegressTestObj*"/>
2928         </return-value>
2929         <parameters>
2930           <parameter name="obj" transfer-ownership="none">
2931             <doc xml:space="preserve">A #RegressTestObj</doc>
2932             <type name="TestObj" c:type="RegressTestObj*"/>
2933           </parameter>
2934         </parameters>
2935       </constructor>
2936       <constructor name="new_callback"
2937                    c:identifier="regress_test_obj_new_callback">
2938         <return-value transfer-ownership="full">
2939           <type name="TestObj" c:type="RegressTestObj*"/>
2940         </return-value>
2941         <parameters>
2942           <parameter name="callback"
2943                      transfer-ownership="none"
2944                      scope="notified"
2945                      closure="1"
2946                      destroy="2">
2947             <type name="TestCallbackUserData"
2948                   c:type="RegressTestCallbackUserData"/>
2949           </parameter>
2950           <parameter name="user_data"
2951                      transfer-ownership="none"
2952                      nullable="1"
2953                      allow-none="1">
2954             <type name="gpointer" c:type="gpointer"/>
2955           </parameter>
2956           <parameter name="notify" transfer-ownership="none" scope="async">
2957             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2958           </parameter>
2959         </parameters>
2960       </constructor>
2961       <constructor name="new_from_file"
2962                    c:identifier="regress_test_obj_new_from_file"
2963                    throws="1">
2964         <return-value transfer-ownership="full">
2965           <type name="TestObj" c:type="RegressTestObj*"/>
2966         </return-value>
2967         <parameters>
2968           <parameter name="x" transfer-ownership="none">
2969             <type name="utf8" c:type="const char*"/>
2970           </parameter>
2971         </parameters>
2972       </constructor>
2973       <function name="null_out" c:identifier="regress_test_obj_null_out">
2974         <return-value transfer-ownership="none">
2975           <type name="none" c:type="void"/>
2976         </return-value>
2977         <parameters>
2978           <parameter name="obj"
2979                      direction="out"
2980                      caller-allocates="0"
2981                      transfer-ownership="full"
2982                      optional="1"
2983                      allow-none="1">
2984             <doc xml:space="preserve">A #RegressTestObj</doc>
2985             <type name="TestObj" c:type="RegressTestObj**"/>
2986           </parameter>
2987         </parameters>
2988       </function>
2989       <function name="static_method"
2990                 c:identifier="regress_test_obj_static_method">
2991         <return-value transfer-ownership="none">
2992           <type name="gdouble" c:type="double"/>
2993         </return-value>
2994         <parameters>
2995           <parameter name="x" transfer-ownership="none">
2996             <type name="gint" c:type="int"/>
2997           </parameter>
2998         </parameters>
2999       </function>
3000       <function name="static_method_callback"
3001                 c:identifier="regress_test_obj_static_method_callback">
3002         <return-value transfer-ownership="none">
3003           <type name="none" c:type="void"/>
3004         </return-value>
3005         <parameters>
3006           <parameter name="callback"
3007                      transfer-ownership="none"
3008                      nullable="1"
3009                      allow-none="1"
3010                      scope="call">
3011             <type name="TestCallback" c:type="RegressTestCallback"/>
3012           </parameter>
3013         </parameters>
3014       </function>
3015       <virtual-method name="allow_none_vfunc">
3016         <return-value transfer-ownership="none">
3017           <type name="none" c:type="void"/>
3018         </return-value>
3019         <parameters>
3020           <instance-parameter name="obj" transfer-ownership="none">
3021             <type name="TestObj" c:type="RegressTestObj*"/>
3022           </instance-parameter>
3023           <parameter name="two"
3024                      transfer-ownership="none"
3025                      nullable="1"
3026                      allow-none="1">
3027             <doc xml:space="preserve">Another object</doc>
3028             <type name="TestObj" c:type="RegressTestObj*"/>
3029           </parameter>
3030         </parameters>
3031       </virtual-method>
3032       <virtual-method name="complex_vfunc">
3033         <return-value transfer-ownership="none">
3034           <type name="none" c:type="void"/>
3035         </return-value>
3036         <parameters>
3037           <instance-parameter name="obj" transfer-ownership="none">
3038             <type name="TestObj" c:type="RegressTestObj*"/>
3039           </instance-parameter>
3040           <parameter name="someint" transfer-ownership="none">
3041             <type name="gint" c:type="int"/>
3042           </parameter>
3043         </parameters>
3044       </virtual-method>
3045       <virtual-method name="matrix" invoker="do_matrix">
3046         <doc xml:space="preserve">This method is virtual.  Notably its name differs from the virtual
3047 slot name, which makes it useful for testing bindings handle this
3048 case.</doc>
3049         <return-value transfer-ownership="none">
3050           <type name="gint" c:type="int"/>
3051         </return-value>
3052         <parameters>
3053           <instance-parameter name="obj" transfer-ownership="none">
3054             <doc xml:space="preserve">A #RegressTestObj</doc>
3055             <type name="TestObj" c:type="RegressTestObj*"/>
3056           </instance-parameter>
3057           <parameter name="somestr" transfer-ownership="none">
3058             <doc xml:space="preserve">Meaningless string</doc>
3059             <type name="utf8" c:type="const char*"/>
3060           </parameter>
3061         </parameters>
3062       </virtual-method>
3063       <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
3064         <doc xml:space="preserve">This method is virtual.  Notably its name differs from the virtual
3065 slot name, which makes it useful for testing bindings handle this
3066 case.</doc>
3067         <return-value transfer-ownership="none">
3068           <type name="gint" c:type="int"/>
3069         </return-value>
3070         <parameters>
3071           <instance-parameter name="obj" transfer-ownership="none">
3072             <doc xml:space="preserve">A #RegressTestObj</doc>
3073             <type name="TestObj" c:type="RegressTestObj*"/>
3074           </instance-parameter>
3075           <parameter name="somestr" transfer-ownership="none">
3076             <doc xml:space="preserve">Meaningless string</doc>
3077             <type name="utf8" c:type="const char*"/>
3078           </parameter>
3079         </parameters>
3080       </method>
3081       <method name="emit_sig_with_array_len_prop"
3082               c:identifier="regress_test_obj_emit_sig_with_array_len_prop">
3083         <return-value transfer-ownership="none">
3084           <type name="none" c:type="void"/>
3085         </return-value>
3086         <parameters>
3087           <instance-parameter name="obj" transfer-ownership="none">
3088             <type name="TestObj" c:type="RegressTestObj*"/>
3089           </instance-parameter>
3090         </parameters>
3091       </method>
3092       <method name="emit_sig_with_foreign_struct"
3093               c:identifier="regress_test_obj_emit_sig_with_foreign_struct">
3094         <return-value transfer-ownership="none">
3095           <type name="none" c:type="void"/>
3096         </return-value>
3097         <parameters>
3098           <instance-parameter name="obj" transfer-ownership="none">
3099             <type name="TestObj" c:type="RegressTestObj*"/>
3100           </instance-parameter>
3101         </parameters>
3102       </method>
3103       <method name="emit_sig_with_int64"
3104               c:identifier="regress_test_obj_emit_sig_with_int64">
3105         <return-value transfer-ownership="none">
3106           <type name="none" c:type="void"/>
3107         </return-value>
3108         <parameters>
3109           <instance-parameter name="obj" transfer-ownership="none">
3110             <type name="TestObj" c:type="RegressTestObj*"/>
3111           </instance-parameter>
3112         </parameters>
3113       </method>
3114       <method name="emit_sig_with_obj"
3115               c:identifier="regress_test_obj_emit_sig_with_obj">
3116         <return-value transfer-ownership="none">
3117           <type name="none" c:type="void"/>
3118         </return-value>
3119         <parameters>
3120           <instance-parameter name="obj" transfer-ownership="none">
3121             <type name="TestObj" c:type="RegressTestObj*"/>
3122           </instance-parameter>
3123         </parameters>
3124       </method>
3125       <method name="emit_sig_with_uint64"
3126               c:identifier="regress_test_obj_emit_sig_with_uint64">
3127         <return-value transfer-ownership="none">
3128           <type name="none" c:type="void"/>
3129         </return-value>
3130         <parameters>
3131           <instance-parameter name="obj" transfer-ownership="none">
3132             <type name="TestObj" c:type="RegressTestObj*"/>
3133           </instance-parameter>
3134         </parameters>
3135       </method>
3136       <method name="forced_method" c:identifier="regress_forced_method">
3137         <return-value transfer-ownership="none">
3138           <type name="none" c:type="void"/>
3139         </return-value>
3140         <parameters>
3141           <instance-parameter name="obj" transfer-ownership="none">
3142             <doc xml:space="preserve">A #RegressTestObj</doc>
3143             <type name="TestObj" c:type="RegressTestObj*"/>
3144           </instance-parameter>
3145         </parameters>
3146       </method>
3147       <method name="instance_method"
3148               c:identifier="regress_test_obj_instance_method">
3149         <return-value transfer-ownership="none">
3150           <type name="gint" c:type="int"/>
3151         </return-value>
3152         <parameters>
3153           <instance-parameter name="obj" transfer-ownership="none">
3154             <type name="TestObj" c:type="RegressTestObj*"/>
3155           </instance-parameter>
3156         </parameters>
3157       </method>
3158       <method name="instance_method_callback"
3159               c:identifier="regress_test_obj_instance_method_callback">
3160         <return-value transfer-ownership="none">
3161           <type name="none" c:type="void"/>
3162         </return-value>
3163         <parameters>
3164           <instance-parameter name="obj" transfer-ownership="none">
3165             <type name="TestObj" c:type="RegressTestObj*"/>
3166           </instance-parameter>
3167           <parameter name="callback"
3168                      transfer-ownership="none"
3169                      nullable="1"
3170                      allow-none="1"
3171                      scope="call">
3172             <type name="TestCallback" c:type="RegressTestCallback"/>
3173           </parameter>
3174         </parameters>
3175       </method>
3176       <method name="instance_method_full"
3177               c:identifier="regress_test_obj_instance_method_full">
3178         <return-value transfer-ownership="none">
3179           <type name="none" c:type="void"/>
3180         </return-value>
3181         <parameters>
3182           <instance-parameter name="obj" transfer-ownership="full">
3183             <type name="TestObj" c:type="RegressTestObj*"/>
3184           </instance-parameter>
3185         </parameters>
3186       </method>
3187       <method name="not_nullable_element_typed_gpointer_in"
3188               c:identifier="regress_test_obj_not_nullable_element_typed_gpointer_in">
3189         <return-value transfer-ownership="none">
3190           <type name="none" c:type="void"/>
3191         </return-value>
3192         <parameters>
3193           <instance-parameter name="obj" transfer-ownership="none">
3194             <doc xml:space="preserve">A #RegressTestObj</doc>
3195             <type name="TestObj" c:type="RegressTestObj*"/>
3196           </instance-parameter>
3197           <parameter name="input" transfer-ownership="none">
3198             <doc xml:space="preserve">some uint8 array</doc>
3199             <array length="1" zero-terminated="0" c:type="gpointer">
3200               <type name="guint8"/>
3201             </array>
3202           </parameter>
3203           <parameter name="count" transfer-ownership="none">
3204             <doc xml:space="preserve">length of @input</doc>
3205             <type name="guint" c:type="guint"/>
3206           </parameter>
3207         </parameters>
3208       </method>
3209       <method name="not_nullable_typed_gpointer_in"
3210               c:identifier="regress_test_obj_not_nullable_typed_gpointer_in">
3211         <return-value transfer-ownership="none">
3212           <type name="none" c:type="void"/>
3213         </return-value>
3214         <parameters>
3215           <instance-parameter name="obj" transfer-ownership="none">
3216             <doc xml:space="preserve">A #RegressTestObj</doc>
3217             <type name="TestObj" c:type="RegressTestObj*"/>
3218           </instance-parameter>
3219           <parameter name="input" transfer-ownership="none">
3220             <doc xml:space="preserve">some #GObject</doc>
3221             <type name="GObject.Object" c:type="gpointer"/>
3222           </parameter>
3223         </parameters>
3224       </method>
3225       <method name="set_bare" c:identifier="regress_test_obj_set_bare">
3226         <return-value transfer-ownership="none">
3227           <type name="none" c:type="void"/>
3228         </return-value>
3229         <parameters>
3230           <instance-parameter name="obj" transfer-ownership="none">
3231             <type name="TestObj" c:type="RegressTestObj*"/>
3232           </instance-parameter>
3233           <parameter name="bare"
3234                      transfer-ownership="none"
3235                      nullable="1"
3236                      allow-none="1">
3237             <type name="GObject.Object" c:type="GObject*"/>
3238           </parameter>
3239         </parameters>
3240       </method>
3241       <method name="skip_inout_param"
3242               c:identifier="regress_test_obj_skip_inout_param"
3243               throws="1">
3244         <doc xml:space="preserve">Check that the out value is skipped</doc>
3245         <return-value transfer-ownership="none">
3246           <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
3247           <type name="gboolean" c:type="gboolean"/>
3248         </return-value>
3249         <parameters>
3250           <instance-parameter name="obj" transfer-ownership="none">
3251             <doc xml:space="preserve">A #RegressTestObj.</doc>
3252             <type name="TestObj" c:type="RegressTestObj*"/>
3253           </instance-parameter>
3254           <parameter name="a" transfer-ownership="none">
3255             <doc xml:space="preserve">Parameter.</doc>
3256             <type name="gint" c:type="gint"/>
3257           </parameter>
3258           <parameter name="out_b"
3259                      direction="out"
3260                      caller-allocates="0"
3261                      transfer-ownership="full">
3262             <doc xml:space="preserve">Return value.</doc>
3263             <type name="gint" c:type="gint*"/>
3264           </parameter>
3265           <parameter name="c" transfer-ownership="none">
3266             <doc xml:space="preserve">Other parameter.</doc>
3267             <type name="gdouble" c:type="gdouble"/>
3268           </parameter>
3269           <parameter name="inout_d"
3270                      direction="inout"
3271                      caller-allocates="0"
3272                      transfer-ownership="full"
3273                      skip="1">
3274             <doc xml:space="preserve">Will be incremented.</doc>
3275             <type name="gint" c:type="gint*"/>
3276           </parameter>
3277           <parameter name="out_sum"
3278                      direction="out"
3279                      caller-allocates="0"
3280                      transfer-ownership="full">
3281             <doc xml:space="preserve">Return value.</doc>
3282             <type name="gint" c:type="gint*"/>
3283           </parameter>
3284           <parameter name="num1" transfer-ownership="none">
3285             <doc xml:space="preserve">Number.</doc>
3286             <type name="gint" c:type="gint"/>
3287           </parameter>
3288           <parameter name="num2" transfer-ownership="none">
3289             <doc xml:space="preserve">Number.</doc>
3290             <type name="gint" c:type="gint"/>
3291           </parameter>
3292         </parameters>
3293       </method>
3294       <method name="skip_out_param"
3295               c:identifier="regress_test_obj_skip_out_param"
3296               throws="1">
3297         <doc xml:space="preserve">Check that the out value is skipped</doc>
3298         <return-value transfer-ownership="none">
3299           <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
3300           <type name="gboolean" c:type="gboolean"/>
3301         </return-value>
3302         <parameters>
3303           <instance-parameter name="obj" transfer-ownership="none">
3304             <doc xml:space="preserve">A #RegressTestObj.</doc>
3305             <type name="TestObj" c:type="RegressTestObj*"/>
3306           </instance-parameter>
3307           <parameter name="a" transfer-ownership="none">
3308             <doc xml:space="preserve">Parameter.</doc>
3309             <type name="gint" c:type="gint"/>
3310           </parameter>
3311           <parameter name="out_b"
3312                      direction="out"
3313                      caller-allocates="0"
3314                      transfer-ownership="full"
3315                      skip="1">
3316             <doc xml:space="preserve">Return value.</doc>
3317             <type name="gint" c:type="gint*"/>
3318           </parameter>
3319           <parameter name="c" transfer-ownership="none">
3320             <doc xml:space="preserve">Other parameter.</doc>
3321             <type name="gdouble" c:type="gdouble"/>
3322           </parameter>
3323           <parameter name="inout_d"
3324                      direction="inout"
3325                      caller-allocates="0"
3326                      transfer-ownership="full">
3327             <doc xml:space="preserve">Will be incremented.</doc>
3328             <type name="gint" c:type="gint*"/>
3329           </parameter>
3330           <parameter name="out_sum"
3331                      direction="out"
3332                      caller-allocates="0"
3333                      transfer-ownership="full">
3334             <doc xml:space="preserve">Return value.</doc>
3335             <type name="gint" c:type="gint*"/>
3336           </parameter>
3337           <parameter name="num1" transfer-ownership="none">
3338             <doc xml:space="preserve">Number.</doc>
3339             <type name="gint" c:type="gint"/>
3340           </parameter>
3341           <parameter name="num2" transfer-ownership="none">
3342             <doc xml:space="preserve">Number.</doc>
3343             <type name="gint" c:type="gint"/>
3344           </parameter>
3345         </parameters>
3346       </method>
3347       <method name="skip_param"
3348               c:identifier="regress_test_obj_skip_param"
3349               throws="1">
3350         <doc xml:space="preserve">Check that a parameter is skipped</doc>
3351         <return-value transfer-ownership="none">
3352           <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
3353           <type name="gboolean" c:type="gboolean"/>
3354         </return-value>
3355         <parameters>
3356           <instance-parameter name="obj" transfer-ownership="none">
3357             <doc xml:space="preserve">A #RegressTestObj.</doc>
3358             <type name="TestObj" c:type="RegressTestObj*"/>
3359           </instance-parameter>
3360           <parameter name="a" transfer-ownership="none">
3361             <doc xml:space="preserve">Parameter.</doc>
3362             <type name="gint" c:type="gint"/>
3363           </parameter>
3364           <parameter name="out_b"
3365                      direction="out"
3366                      caller-allocates="0"
3367                      transfer-ownership="full">
3368             <doc xml:space="preserve">Return value.</doc>
3369             <type name="gint" c:type="gint*"/>
3370           </parameter>
3371           <parameter name="c" transfer-ownership="none" skip="1">
3372             <doc xml:space="preserve">Other parameter.</doc>
3373             <type name="gdouble" c:type="gdouble"/>
3374           </parameter>
3375           <parameter name="inout_d"
3376                      direction="inout"
3377                      caller-allocates="0"
3378                      transfer-ownership="full">
3379             <doc xml:space="preserve">Will be incremented.</doc>
3380             <type name="gint" c:type="gint*"/>
3381           </parameter>
3382           <parameter name="out_sum"
3383                      direction="out"
3384                      caller-allocates="0"
3385                      transfer-ownership="full">
3386             <doc xml:space="preserve">Return value.</doc>
3387             <type name="gint" c:type="gint*"/>
3388           </parameter>
3389           <parameter name="num1" transfer-ownership="none">
3390             <doc xml:space="preserve">Number.</doc>
3391             <type name="gint" c:type="gint"/>
3392           </parameter>
3393           <parameter name="num2" transfer-ownership="none">
3394             <doc xml:space="preserve">Number.</doc>
3395             <type name="gint" c:type="gint"/>
3396           </parameter>
3397         </parameters>
3398       </method>
3399       <method name="skip_return_val"
3400               c:identifier="regress_test_obj_skip_return_val"
3401               throws="1">
3402         <doc xml:space="preserve">Check that the return value is skipped</doc>
3403         <return-value transfer-ownership="none" skip="1">
3404           <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
3405           <type name="gboolean" c:type="gboolean"/>
3406         </return-value>
3407         <parameters>
3408           <instance-parameter name="obj" transfer-ownership="none">
3409             <doc xml:space="preserve">a #RegressTestObj</doc>
3410             <type name="TestObj" c:type="RegressTestObj*"/>
3411           </instance-parameter>
3412           <parameter name="a" transfer-ownership="none">
3413             <doc xml:space="preserve">Parameter.</doc>
3414             <type name="gint" c:type="gint"/>
3415           </parameter>
3416           <parameter name="out_b"
3417                      direction="out"
3418                      caller-allocates="0"
3419                      transfer-ownership="full">
3420             <doc xml:space="preserve">A return value.</doc>
3421             <type name="gint" c:type="gint*"/>
3422           </parameter>
3423           <parameter name="c" transfer-ownership="none">
3424             <doc xml:space="preserve">Other parameter.</doc>
3425             <type name="gdouble" c:type="gdouble"/>
3426           </parameter>
3427           <parameter name="inout_d"
3428                      direction="inout"
3429                      caller-allocates="0"
3430                      transfer-ownership="full">
3431             <doc xml:space="preserve">Will be incremented.</doc>
3432             <type name="gint" c:type="gint*"/>
3433           </parameter>
3434           <parameter name="out_sum"
3435                      direction="out"
3436                      caller-allocates="0"
3437                      transfer-ownership="full">
3438             <doc xml:space="preserve">Return value.</doc>
3439             <type name="gint" c:type="gint*"/>
3440           </parameter>
3441           <parameter name="num1" transfer-ownership="none">
3442             <doc xml:space="preserve">Number.</doc>
3443             <type name="gint" c:type="gint"/>
3444           </parameter>
3445           <parameter name="num2" transfer-ownership="none">
3446             <doc xml:space="preserve">Number.</doc>
3447             <type name="gint" c:type="gint"/>
3448           </parameter>
3449         </parameters>
3450       </method>
3451       <method name="skip_return_val_no_out"
3452               c:identifier="regress_test_obj_skip_return_val_no_out"
3453               throws="1">
3454         <doc xml:space="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
3455 raise an error.</doc>
3456         <return-value transfer-ownership="none" skip="1">
3457           <doc xml:space="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
3458           <type name="gboolean" c:type="gboolean"/>
3459         </return-value>
3460         <parameters>
3461           <instance-parameter name="obj" transfer-ownership="none">
3462             <doc xml:space="preserve">a #RegressTestObj</doc>
3463             <type name="TestObj" c:type="RegressTestObj*"/>
3464           </instance-parameter>
3465           <parameter name="a" transfer-ownership="none">
3466             <doc xml:space="preserve">Parameter.</doc>
3467             <type name="gint" c:type="gint"/>
3468           </parameter>
3469         </parameters>
3470       </method>
3471       <method name="torture_signature_0"
3472               c:identifier="regress_test_obj_torture_signature_0">
3473         <return-value transfer-ownership="none">
3474           <type name="none" c:type="void"/>
3475         </return-value>
3476         <parameters>
3477           <instance-parameter name="obj" transfer-ownership="none">
3478             <doc xml:space="preserve">A #RegressTestObj</doc>
3479             <type name="TestObj" c:type="RegressTestObj*"/>
3480           </instance-parameter>
3481           <parameter name="x" transfer-ownership="none">
3482             <type name="gint" c:type="int"/>
3483           </parameter>
3484           <parameter name="y"
3485                      direction="out"
3486                      caller-allocates="0"
3487                      transfer-ownership="full">
3488             <type name="gdouble" c:type="double*"/>
3489           </parameter>
3490           <parameter name="z"
3491                      direction="out"
3492                      caller-allocates="0"
3493                      transfer-ownership="full">
3494             <type name="gint" c:type="int*"/>
3495           </parameter>
3496           <parameter name="foo" transfer-ownership="none">
3497             <type name="utf8" c:type="const char*"/>
3498           </parameter>
3499           <parameter name="q"
3500                      direction="out"
3501                      caller-allocates="0"
3502                      transfer-ownership="full">
3503             <type name="gint" c:type="int*"/>
3504           </parameter>
3505           <parameter name="m" transfer-ownership="none">
3506             <type name="guint" c:type="guint"/>
3507           </parameter>
3508         </parameters>
3509       </method>
3510       <method name="torture_signature_1"
3511               c:identifier="regress_test_obj_torture_signature_1"
3512               throws="1">
3513         <doc xml:space="preserve">This function throws an error if m is odd.</doc>
3514         <return-value transfer-ownership="none">
3515           <type name="gboolean" c:type="gboolean"/>
3516         </return-value>
3517         <parameters>
3518           <instance-parameter name="obj" transfer-ownership="none">
3519             <doc xml:space="preserve">A #RegressTestObj</doc>
3520             <type name="TestObj" c:type="RegressTestObj*"/>
3521           </instance-parameter>
3522           <parameter name="x" transfer-ownership="none">
3523             <type name="gint" c:type="int"/>
3524           </parameter>
3525           <parameter name="y"
3526                      direction="out"
3527                      caller-allocates="0"
3528                      transfer-ownership="full">
3529             <type name="gdouble" c:type="double*"/>
3530           </parameter>
3531           <parameter name="z"
3532                      direction="out"
3533                      caller-allocates="0"
3534                      transfer-ownership="full">
3535             <type name="gint" c:type="int*"/>
3536           </parameter>
3537           <parameter name="foo" transfer-ownership="none">
3538             <type name="utf8" c:type="const char*"/>
3539           </parameter>
3540           <parameter name="q"
3541                      direction="out"
3542                      caller-allocates="0"
3543                      transfer-ownership="full">
3544             <type name="gint" c:type="int*"/>
3545           </parameter>
3546           <parameter name="m" transfer-ownership="none">
3547             <type name="guint" c:type="guint"/>
3548           </parameter>
3549         </parameters>
3550       </method>
3551       <property name="bare" writable="1" transfer-ownership="none">
3552         <type name="GObject.Object"/>
3553       </property>
3554       <property name="boxed" writable="1" transfer-ownership="none">
3555         <type name="TestBoxed"/>
3556       </property>
3557       <property name="double" writable="1" transfer-ownership="none">
3558         <type name="gdouble" c:type="gdouble"/>
3559       </property>
3560       <property name="float" writable="1" transfer-ownership="none">
3561         <type name="gfloat" c:type="gfloat"/>
3562       </property>
3563       <property name="gtype" writable="1" transfer-ownership="none">
3564         <type name="GType" c:type="GType"/>
3565       </property>
3566       <property name="hash-table" writable="1" transfer-ownership="container">
3567         <type name="GLib.HashTable">
3568           <type name="utf8"/>
3569           <type name="gint8"/>
3570         </type>
3571       </property>
3572       <property name="hash-table-old"
3573                 writable="1"
3574                 transfer-ownership="container">
3575         <type name="GLib.HashTable">
3576           <type name="utf8"/>
3577           <type name="gint8"/>
3578         </type>
3579       </property>
3580       <property name="int" writable="1" transfer-ownership="none">
3581         <type name="gint" c:type="gint"/>
3582       </property>
3583       <property name="list" writable="1" transfer-ownership="none">
3584         <type name="GLib.List" c:type="gpointer">
3585           <type name="utf8"/>
3586         </type>
3587       </property>
3588       <property name="list-old" writable="1" transfer-ownership="none">
3589         <type name="GLib.List" c:type="gpointer">
3590           <type name="utf8"/>
3591         </type>
3592       </property>
3593       <property name="pptrarray" writable="1" transfer-ownership="none">
3594         <array name="GLib.PtrArray" c:type="gpointer">
3595           <type name="utf8"/>
3596         </array>
3597       </property>
3598       <property name="string" writable="1" transfer-ownership="none">
3599         <type name="utf8" c:type="gchar*"/>
3600       </property>
3601       <field name="parent_instance">
3602         <type name="GObject.Object" c:type="GObject"/>
3603       </field>
3604       <field name="bare">
3605         <type name="GObject.Object" c:type="GObject*"/>
3606       </field>
3607       <field name="boxed">
3608         <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3609       </field>
3610       <field name="hash_table">
3611         <type name="GLib.HashTable" c:type="GHashTable*">
3612           <type name="gpointer" c:type="gpointer"/>
3613           <type name="gpointer" c:type="gpointer"/>
3614         </type>
3615       </field>
3616       <field name="list">
3617         <type name="GLib.List" c:type="GList*">
3618           <type name="gpointer" c:type="gpointer"/>
3619         </type>
3620       </field>
3621       <field name="some_int8">
3622         <type name="gint8" c:type="gint8"/>
3623       </field>
3624       <field name="some_float">
3625         <type name="gfloat" c:type="float"/>
3626       </field>
3627       <field name="some_double">
3628         <type name="gdouble" c:type="double"/>
3629       </field>
3630       <field name="string">
3631         <type name="utf8" c:type="char*"/>
3632       </field>
3633       <field name="gtype">
3634         <type name="GType" c:type="GType"/>
3635       </field>
3636       <field name="function_ptr">
3637         <callback name="function_ptr">
3638           <return-value transfer-ownership="none">
3639             <type name="none" c:type="void"/>
3640           </return-value>
3641         </callback>
3642       </field>
3643       <glib:signal name="all"
3644                    when="first"
3645                    no-recurse="1"
3646                    detailed="1"
3647                    action="1"
3648                    no-hooks="1">
3649         <return-value transfer-ownership="none">
3650           <type name="none" c:type="void"/>
3651         </return-value>
3652       </glib:signal>
3653       <glib:signal name="cleanup" when="cleanup">
3654         <return-value transfer-ownership="none">
3655           <type name="none" c:type="void"/>
3656         </return-value>
3657       </glib:signal>
3658       <glib:signal name="first" when="first">
3659         <return-value transfer-ownership="none">
3660           <type name="none" c:type="void"/>
3661         </return-value>
3662       </glib:signal>
3663       <glib:signal name="sig-with-array-len-prop" when="last">
3664         <doc xml:space="preserve">This test signal similar to GSettings::change-event.
3665 You can use this with regress_test_obj_emit_sig_with_array_len_prop(), or
3666 raise from the introspection client language.</doc>
3667         <return-value transfer-ownership="none">
3668           <type name="none" c:type="void"/>
3669         </return-value>
3670         <parameters>
3671           <parameter name="arr"
3672                      transfer-ownership="none"
3673                      nullable="1"
3674                      allow-none="1">
3675             <doc xml:space="preserve">numbers, or %NULL</doc>
3676             <array length="1" zero-terminated="0" c:type="gpointer">
3677               <type name="guint"/>
3678             </array>
3679           </parameter>
3680           <parameter name="len" transfer-ownership="none">
3681             <doc xml:space="preserve">length of @arr, or 0</doc>
3682             <type name="gint" c:type="gint"/>
3683           </parameter>
3684         </parameters>
3685       </glib:signal>
3686       <glib:signal name="sig-with-array-prop" when="last">
3687         <doc xml:space="preserve">This test signal is like TelepathyGlib's
3688  TpChannel:: group-members-changed-detailed:</doc>
3689         <return-value transfer-ownership="none">
3690           <type name="none" c:type="void"/>
3691         </return-value>
3692         <parameters>
3693           <parameter name="arr" transfer-ownership="none">
3694             <doc xml:space="preserve">numbers</doc>
3695             <array name="GLib.Array">
3696               <type name="guint"/>
3697             </array>
3698           </parameter>
3699         </parameters>
3700       </glib:signal>
3701       <glib:signal name="sig-with-foreign-struct" when="last">
3702         <return-value transfer-ownership="none">
3703           <type name="none" c:type="void"/>
3704         </return-value>
3705         <parameters>
3706           <parameter name="cr" transfer-ownership="none">
3707             <doc xml:space="preserve">A cairo context.</doc>
3708             <type name="cairo.Context"/>
3709           </parameter>
3710         </parameters>
3711       </glib:signal>
3712       <glib:signal name="sig-with-hash-prop" when="last">
3713         <doc xml:space="preserve">This test signal is like TelepathyGlib's
3714  TpAccount::status-changed</doc>
3715         <return-value transfer-ownership="none">
3716           <type name="none" c:type="void"/>
3717         </return-value>
3718         <parameters>
3719           <parameter name="hash" transfer-ownership="none">
3720             <type name="GLib.HashTable">
3721               <type name="utf8"/>
3722               <type name="GObject.Value"/>
3723             </type>
3724           </parameter>
3725         </parameters>
3726       </glib:signal>
3727       <glib:signal name="sig-with-int64-prop" when="last">
3728         <doc xml:space="preserve">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
3729 the introspection client langage.</doc>
3730         <return-value transfer-ownership="none">
3731           <type name="gint64" c:type="gint64"/>
3732         </return-value>
3733         <parameters>
3734           <parameter name="i" transfer-ownership="none">
3735             <doc xml:space="preserve">an integer</doc>
3736             <type name="gint64" c:type="gint64"/>
3737           </parameter>
3738         </parameters>
3739       </glib:signal>
3740       <glib:signal name="sig-with-intarray-ret" when="last">
3741         <return-value transfer-ownership="full">
3742           <array name="GLib.Array">
3743             <type name="gint"/>
3744           </array>
3745         </return-value>
3746         <parameters>
3747           <parameter name="i" transfer-ownership="none">
3748             <doc xml:space="preserve">an integer</doc>
3749             <type name="gint" c:type="gint"/>
3750           </parameter>
3751         </parameters>
3752       </glib:signal>
3753       <glib:signal name="sig-with-obj" when="last">
3754         <doc xml:space="preserve">Test transfer none GObject as a param (tests refcounting).
3755 Use with regress_test_obj_emit_sig_with_obj</doc>
3756         <return-value transfer-ownership="none">
3757           <type name="none" c:type="void"/>
3758         </return-value>
3759         <parameters>
3760           <parameter name="obj" transfer-ownership="none">
3761             <doc xml:space="preserve">A newly created RegressTestObj</doc>
3762             <type name="GObject.Object"/>
3763           </parameter>
3764         </parameters>
3765       </glib:signal>
3766       <glib:signal name="sig-with-strv" when="last">
3767         <doc xml:space="preserve">Test GStrv as a param.</doc>
3768         <return-value transfer-ownership="none">
3769           <type name="none" c:type="void"/>
3770         </return-value>
3771         <parameters>
3772           <parameter name="strs" transfer-ownership="none">
3773             <doc xml:space="preserve">strings</doc>
3774             <array>
3775               <type name="utf8"/>
3776             </array>
3777           </parameter>
3778         </parameters>
3779       </glib:signal>
3780       <glib:signal name="sig-with-uint64-prop" when="last">
3781         <doc xml:space="preserve">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
3782 the introspection client langage.</doc>
3783         <return-value transfer-ownership="none">
3784           <type name="guint64" c:type="guint64"/>
3785         </return-value>
3786         <parameters>
3787           <parameter name="i" transfer-ownership="none">
3788             <doc xml:space="preserve">an integer</doc>
3789             <type name="guint64" c:type="guint64"/>
3790           </parameter>
3791         </parameters>
3792       </glib:signal>
3793       <glib:signal name="test" when="last" no-recurse="1" no-hooks="1">
3794         <return-value transfer-ownership="none">
3795           <type name="none" c:type="void"/>
3796         </return-value>
3797       </glib:signal>
3798       <glib:signal name="test-with-static-scope-arg"
3799                    when="last"
3800                    no-recurse="1"
3801                    no-hooks="1">
3802         <return-value transfer-ownership="none">
3803           <type name="none" c:type="void"/>
3804         </return-value>
3805         <parameters>
3806           <parameter name="object" transfer-ownership="none">
3807             <type name="TestSimpleBoxedA"/>
3808           </parameter>
3809         </parameters>
3810       </glib:signal>
3811     </class>
3812     <record name="TestObjClass"
3813             c:type="RegressTestObjClass"
3814             glib:is-gtype-struct-for="TestObj">
3815       <field name="parent_class">
3816         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
3817       </field>
3818       <field name="matrix">
3819         <callback name="matrix">
3820           <return-value transfer-ownership="none">
3821             <type name="gint" c:type="int"/>
3822           </return-value>
3823           <parameters>
3824             <parameter name="obj" transfer-ownership="none">
3825               <doc xml:space="preserve">A #RegressTestObj</doc>
3826               <type name="TestObj" c:type="RegressTestObj*"/>
3827             </parameter>
3828             <parameter name="somestr" transfer-ownership="none">
3829               <doc xml:space="preserve">Meaningless string</doc>
3830               <type name="utf8" c:type="const char*"/>
3831             </parameter>
3832           </parameters>
3833         </callback>
3834       </field>
3835       <field name="allow_none_vfunc">
3836         <callback name="allow_none_vfunc">
3837           <return-value transfer-ownership="none">
3838             <type name="none" c:type="void"/>
3839           </return-value>
3840           <parameters>
3841             <parameter name="obj" transfer-ownership="none">
3842               <type name="TestObj" c:type="RegressTestObj*"/>
3843             </parameter>
3844             <parameter name="two"
3845                        transfer-ownership="none"
3846                        nullable="1"
3847                        allow-none="1">
3848               <doc xml:space="preserve">Another object</doc>
3849               <type name="TestObj" c:type="RegressTestObj*"/>
3850             </parameter>
3851           </parameters>
3852         </callback>
3853       </field>
3854       <field name="test_signal">
3855         <type name="guint" c:type="guint"/>
3856       </field>
3857       <field name="test_signal_with_static_scope_arg">
3858         <type name="guint" c:type="guint"/>
3859       </field>
3860       <field name="complex_vfunc">
3861         <type name="TestExternallyDefinedCallback"
3862               c:type="RegressTestExternallyDefinedCallback"/>
3863       </field>
3864       <field name="_regress_reserved1" introspectable="0">
3865         <callback name="_regress_reserved1">
3866           <return-value transfer-ownership="none">
3867             <type name="none" c:type="void"/>
3868           </return-value>
3869         </callback>
3870       </field>
3871       <field name="_regress_reserved2" introspectable="0">
3872         <callback name="_regress_reserved2">
3873           <return-value transfer-ownership="none">
3874             <type name="none" c:type="void"/>
3875           </return-value>
3876         </callback>
3877       </field>
3878     </record>
3879     <enumeration name="TestOtherError"
3880                  glib:type-name="RegressTestOtherError"
3881                  glib:get-type="regress_test_unconventional_error_get_type"
3882                  c:type="RegressTestOtherError"
3883                  glib:error-domain="regress-test-other-error">
3884       <member name="code1"
3885               value="1"
3886               c:identifier="REGRESS_TEST_OTHER_ERROR_CODE1"
3887               glib:nick="code1">
3888       </member>
3889       <member name="code2"
3890               value="2"
3891               c:identifier="REGRESS_TEST_OTHER_ERROR_CODE2"
3892               glib:nick="code2">
3893       </member>
3894       <member name="code3"
3895               value="3"
3896               c:identifier="REGRESS_TEST_OTHER_ERROR_CODE3"
3897               glib:nick="code3">
3898       </member>
3899       <function name="quark"
3900                 c:identifier="regress_test_unconventional_error_quark">
3901         <return-value transfer-ownership="none">
3902           <type name="GLib.Quark" c:type="GQuark"/>
3903         </return-value>
3904       </function>
3905     </enumeration>
3906     <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
3907       <member name="public_enum_before"
3908               value="1"
3909               c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE">
3910       </member>
3911       <member name="public_enum_after"
3912               value="4"
3913               c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER">
3914       </member>
3915     </bitfield>
3916     <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
3917       <field name="this_is_public_before" writable="1">
3918         <type name="gint" c:type="gint"/>
3919       </field>
3920       <field name="this_is_private" readable="0" private="1">
3921         <type name="gint" c:type="gint"/>
3922       </field>
3923       <field name="this_is_public_after" writable="1">
3924         <type name="gint" c:type="gint"/>
3925       </field>
3926     </record>
3927     <enumeration name="TestReferenceEnum" c:type="RegressTestReferenceEnum">
3928       <member name="0" value="4" c:identifier="REGRESS_TEST_REFERENCE_0">
3929       </member>
3930       <member name="1" value="2" c:identifier="REGRESS_TEST_REFERENCE_1">
3931       </member>
3932       <member name="2" value="54" c:identifier="REGRESS_TEST_REFERENCE_2">
3933       </member>
3934       <member name="3" value="4" c:identifier="REGRESS_TEST_REFERENCE_3">
3935       </member>
3936       <member name="4" value="216" c:identifier="REGRESS_TEST_REFERENCE_4">
3937       </member>
3938       <member name="5" value="-217" c:identifier="REGRESS_TEST_REFERENCE_5">
3939       </member>
3940     </enumeration>
3941     <record name="TestSimpleBoxedA"
3942             c:type="RegressTestSimpleBoxedA"
3943             glib:type-name="RegressTestSimpleBoxedA"
3944             glib:get-type="regress_test_simple_boxed_a_get_gtype"
3945             c:symbol-prefix="test_simple_boxed_a">
3946       <field name="some_int" writable="1">
3947         <type name="gint" c:type="gint"/>
3948       </field>
3949       <field name="some_int8" writable="1">
3950         <type name="gint8" c:type="gint8"/>
3951       </field>
3952       <field name="some_double" writable="1">
3953         <type name="gdouble" c:type="gdouble"/>
3954       </field>
3955       <field name="some_enum" writable="1">
3956         <type name="TestEnum" c:type="RegressTestEnum"/>
3957       </field>
3958       <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
3959         <return-value transfer-ownership="full">
3960           <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
3961         </return-value>
3962         <parameters>
3963           <instance-parameter name="a" transfer-ownership="none">
3964             <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
3965           </instance-parameter>
3966         </parameters>
3967       </method>
3968       <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
3969         <return-value transfer-ownership="none">
3970           <type name="gboolean" c:type="gboolean"/>
3971         </return-value>
3972         <parameters>
3973           <instance-parameter name="a" transfer-ownership="none">
3974             <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
3975           </instance-parameter>
3976           <parameter name="other_a" transfer-ownership="none">
3977             <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
3978           </parameter>
3979         </parameters>
3980       </method>
3981       <function name="const_return"
3982                 c:identifier="regress_test_simple_boxed_a_const_return">
3983         <return-value transfer-ownership="none">
3984           <type name="TestSimpleBoxedA"
3985                 c:type="const RegressTestSimpleBoxedA*"/>
3986         </return-value>
3987       </function>
3988     </record>
3989     <record name="TestSimpleBoxedB"
3990             c:type="RegressTestSimpleBoxedB"
3991             glib:type-name="RegressTestSimpleBoxedB"
3992             glib:get-type="regress_test_simple_boxed_b_get_type"
3993             c:symbol-prefix="test_simple_boxed_b">
3994       <field name="some_int8" writable="1">
3995         <type name="gint8" c:type="gint8"/>
3996       </field>
3997       <field name="nested_a" writable="1">
3998         <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
3999       </field>
4000       <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
4001         <return-value transfer-ownership="full">
4002           <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
4003         </return-value>
4004         <parameters>
4005           <instance-parameter name="b" transfer-ownership="none">
4006             <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
4007           </instance-parameter>
4008         </parameters>
4009       </method>
4010     </record>
4011     <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
4012       <return-value transfer-ownership="none">
4013         <type name="none" c:type="void"/>
4014       </return-value>
4015     </callback>
4016     <record name="TestStructA" c:type="RegressTestStructA">
4017       <field name="some_int" writable="1">
4018         <type name="gint" c:type="gint"/>
4019       </field>
4020       <field name="some_int8" writable="1">
4021         <type name="gint8" c:type="gint8"/>
4022       </field>
4023       <field name="some_double" writable="1">
4024         <type name="gdouble" c:type="gdouble"/>
4025       </field>
4026       <field name="some_enum" writable="1">
4027         <type name="TestEnum" c:type="RegressTestEnum"/>
4028       </field>
4029       <method name="clone" c:identifier="regress_test_struct_a_clone">
4030         <doc xml:space="preserve">Make a copy of a RegressTestStructA</doc>
4031         <return-value transfer-ownership="none">
4032           <type name="none" c:type="void"/>
4033         </return-value>
4034         <parameters>
4035           <instance-parameter name="a" transfer-ownership="none">
4036             <doc xml:space="preserve">the structure</doc>
4037             <type name="TestStructA" c:type="RegressTestStructA*"/>
4038           </instance-parameter>
4039           <parameter name="a_out"
4040                      direction="out"
4041                      caller-allocates="1"
4042                      transfer-ownership="none">
4043             <doc xml:space="preserve">the cloned structure</doc>
4044             <type name="TestStructA" c:type="RegressTestStructA*"/>
4045           </parameter>
4046         </parameters>
4047       </method>
4048       <function name="parse" c:identifier="regress_test_struct_a_parse">
4049         <return-value transfer-ownership="none">
4050           <type name="none" c:type="void"/>
4051         </return-value>
4052         <parameters>
4053           <parameter name="a_out"
4054                      direction="out"
4055                      caller-allocates="1"
4056                      transfer-ownership="none">
4057             <doc xml:space="preserve">the structure that is to be filled</doc>
4058             <type name="TestStructA" c:type="RegressTestStructA*"/>
4059           </parameter>
4060           <parameter name="string" transfer-ownership="none">
4061             <doc xml:space="preserve">ignored</doc>
4062             <type name="utf8" c:type="const gchar*"/>
4063           </parameter>
4064         </parameters>
4065       </function>
4066     </record>
4067     <record name="TestStructB" c:type="RegressTestStructB">
4068       <field name="some_int8" writable="1">
4069         <type name="gint8" c:type="gint8"/>
4070       </field>
4071       <field name="nested_a" writable="1">
4072         <type name="TestStructA" c:type="RegressTestStructA"/>
4073       </field>
4074       <method name="clone" c:identifier="regress_test_struct_b_clone">
4075         <doc xml:space="preserve">Make a copy of a RegressTestStructB</doc>
4076         <return-value transfer-ownership="none">
4077           <type name="none" c:type="void"/>
4078         </return-value>
4079         <parameters>
4080           <instance-parameter name="b" transfer-ownership="none">
4081             <doc xml:space="preserve">the structure</doc>
4082             <type name="TestStructB" c:type="RegressTestStructB*"/>
4083           </instance-parameter>
4084           <parameter name="b_out"
4085                      direction="out"
4086                      caller-allocates="1"
4087                      transfer-ownership="none">
4088             <doc xml:space="preserve">the cloned structure</doc>
4089             <type name="TestStructB" c:type="RegressTestStructB*"/>
4090           </parameter>
4091         </parameters>
4092       </method>
4093     </record>
4094     <record name="TestStructC" c:type="RegressTestStructC">
4095       <field name="another_int" writable="1">
4096         <type name="gint" c:type="gint"/>
4097       </field>
4098       <field name="obj" writable="1">
4099         <type name="GObject.Object" c:type="GObject*"/>
4100       </field>
4101     </record>
4102     <record name="TestStructD" c:type="RegressTestStructD">
4103       <field name="array1" writable="1">
4104         <array c:type="RegressTestStructA**">
4105           <type name="TestStructA" c:type="RegressTestStructA*"/>
4106         </array>
4107       </field>
4108       <field name="array2" writable="1">
4109         <array c:type="gpointer*">
4110           <type name="TestObj"/>
4111         </array>
4112       </field>
4113       <field name="field" writable="1">
4114         <type name="TestObj"/>
4115       </field>
4116       <field name="list" writable="1">
4117         <type name="GLib.List" c:type="GList*">
4118           <type name="TestObj"/>
4119         </type>
4120       </field>
4121       <field name="garray" writable="1">
4122         <array name="GLib.PtrArray" c:type="GPtrArray*">
4123           <type name="TestObj"/>
4124         </array>
4125       </field>
4126     </record>
4127     <record name="TestStructE" c:type="RegressTestStructE">
4128       <field name="some_type" writable="1">
4129         <type name="GType" c:type="GType"/>
4130       </field>
4131       <field name="some_union" writable="1">
4132         <array zero-terminated="0" c:type="gpointer" fixed-size="2">
4133           <type name="TestStructE__some_union__union"/>
4134         </array>
4135       </field>
4136     </record>
4137     <union name="TestStructE__some_union__union">
4138       <field name="v_int" writable="1">
4139         <type name="gint" c:type="gint"/>
4140       </field>
4141       <field name="v_uint" writable="1">
4142         <type name="guint" c:type="guint"/>
4143       </field>
4144       <field name="v_long" writable="1">
4145         <type name="glong" c:type="glong"/>
4146       </field>
4147       <field name="v_ulong" writable="1">
4148         <type name="gulong" c:type="gulong"/>
4149       </field>
4150       <field name="v_int64" writable="1">
4151         <type name="gint64" c:type="gint64"/>
4152       </field>
4153       <field name="v_uint64" writable="1">
4154         <type name="guint64" c:type="guint64"/>
4155       </field>
4156       <field name="v_float" writable="1">
4157         <type name="gfloat" c:type="gfloat"/>
4158       </field>
4159       <field name="v_double" writable="1">
4160         <type name="gdouble" c:type="gdouble"/>
4161       </field>
4162       <field name="v_pointer" writable="1">
4163         <type name="gpointer" c:type="gpointer"/>
4164       </field>
4165     </union>
4166     <record name="TestStructF" c:type="RegressTestStructF">
4167       <field name="ref_count" writable="1">
4168         <type name="gint" c:type="volatile gint"/>
4169       </field>
4170       <field name="data1" writable="1">
4171         <type name="gint" c:type="const gint*"/>
4172       </field>
4173       <field name="data2" writable="1">
4174         <type name="gint" c:type="const gint* const"/>
4175       </field>
4176       <field name="data3" writable="1">
4177         <type name="gint" c:type="const gint* const* const"/>
4178       </field>
4179       <field name="data4" writable="1">
4180         <type name="gint" c:type="const gint** const*"/>
4181       </field>
4182       <field name="data5" writable="1">
4183         <type name="gint" c:type="volatile gint* const"/>
4184       </field>
4185       <field name="data6" writable="1">
4186         <type name="gint" c:type="const gint* volatile"/>
4187       </field>
4188     </record>
4189     <record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
4190       <field name="just_int" writable="1">
4191         <type name="gint" c:type="gint"/>
4192       </field>
4193       <field name="array" writable="1">
4194         <array zero-terminated="0" c:type="gint" fixed-size="10">
4195           <type name="gint" c:type="gint"/>
4196         </array>
4197       </field>
4198       <method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
4199         <return-value transfer-ownership="none">
4200           <type name="none" c:type="void"/>
4201         </return-value>
4202         <parameters>
4203           <instance-parameter name="str" transfer-ownership="none">
4204             <type name="TestStructFixedArray"
4205                   c:type="RegressTestStructFixedArray*"/>
4206           </instance-parameter>
4207         </parameters>
4208       </method>
4209     </record>
4210     <class name="TestSubObj"
4211            c:symbol-prefix="test_sub_obj"
4212            c:type="RegressTestSubObj"
4213            parent="TestObj"
4214            glib:type-name="RegressTestSubObj"
4215            glib:get-type="regress_test_sub_obj_get_type"
4216            glib:type-struct="TestSubObjClass">
4217       <constructor name="new" c:identifier="regress_test_sub_obj_new">
4218         <return-value transfer-ownership="full">
4219           <type name="TestObj" c:type="RegressTestObj*"/>
4220         </return-value>
4221       </constructor>
4222       <method name="instance_method"
4223               c:identifier="regress_test_sub_obj_instance_method">
4224         <return-value transfer-ownership="none">
4225           <type name="gint" c:type="int"/>
4226         </return-value>
4227         <parameters>
4228           <instance-parameter name="obj" transfer-ownership="none">
4229             <type name="TestSubObj" c:type="RegressTestSubObj*"/>
4230           </instance-parameter>
4231         </parameters>
4232       </method>
4233       <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
4234         <return-value transfer-ownership="none">
4235           <type name="none" c:type="void"/>
4236         </return-value>
4237         <parameters>
4238           <instance-parameter name="obj" transfer-ownership="none">
4239             <type name="TestSubObj" c:type="RegressTestSubObj*"/>
4240           </instance-parameter>
4241         </parameters>
4242       </method>
4243       <field name="parent_instance">
4244         <type name="TestObj" c:type="RegressTestObj"/>
4245       </field>
4246     </class>
4247     <record name="TestSubObjClass"
4248             c:type="RegressTestSubObjClass"
4249             glib:is-gtype-struct-for="TestSubObj">
4250       <field name="parent_class">
4251         <type name="TestObjClass" c:type="RegressTestObjClass"/>
4252       </field>
4253     </record>
4254     <class name="TestWi8021x"
4255            c:symbol-prefix="test_wi_802_1x"
4256            c:type="RegressTestWi8021x"
4257            parent="GObject.Object"
4258            glib:type-name="RegressTestWi8021x"
4259            glib:get-type="regress_test_wi_802_1x_get_type"
4260            glib:type-struct="TestWi8021xClass">
4261       <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
4262         <return-value transfer-ownership="full">
4263           <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
4264         </return-value>
4265       </constructor>
4266       <function name="static_method"
4267                 c:identifier="regress_test_wi_802_1x_static_method">
4268         <return-value transfer-ownership="none">
4269           <type name="gint" c:type="int"/>
4270         </return-value>
4271         <parameters>
4272           <parameter name="x" transfer-ownership="none">
4273             <type name="gint" c:type="int"/>
4274           </parameter>
4275         </parameters>
4276       </function>
4277       <method name="get_testbool"
4278               c:identifier="regress_test_wi_802_1x_get_testbool">
4279         <return-value transfer-ownership="none">
4280           <type name="gboolean" c:type="gboolean"/>
4281         </return-value>
4282         <parameters>
4283           <instance-parameter name="obj" transfer-ownership="none">
4284             <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
4285           </instance-parameter>
4286         </parameters>
4287       </method>
4288       <method name="set_testbool"
4289               c:identifier="regress_test_wi_802_1x_set_testbool">
4290         <return-value transfer-ownership="none">
4291           <type name="none" c:type="void"/>
4292         </return-value>
4293         <parameters>
4294           <instance-parameter name="obj" transfer-ownership="none">
4295             <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
4296           </instance-parameter>
4297           <parameter name="v" transfer-ownership="none">
4298             <type name="gboolean" c:type="gboolean"/>
4299           </parameter>
4300         </parameters>
4301       </method>
4302       <property name="testbool" writable="1" transfer-ownership="none">
4303         <type name="gboolean" c:type="gboolean"/>
4304       </property>
4305       <field name="parent_instance">
4306         <type name="GObject.Object" c:type="GObject"/>
4307       </field>
4308       <field name="testbool">
4309         <type name="gboolean" c:type="gboolean"/>
4310       </field>
4311     </class>
4312     <record name="TestWi8021xClass"
4313             c:type="RegressTestWi8021xClass"
4314             glib:is-gtype-struct-for="TestWi8021x">
4315       <field name="parent_class">
4316         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
4317       </field>
4318     </record>
4319     <constant name="UTF8_CONSTANT"
4320               value="const â™¥ utf8"
4321               c:type="REGRESS_UTF8_CONSTANT">
4322       <type name="utf8" c:type="gchar*"/>
4323     </constant>
4324     <function name="aliased_caller_alloc"
4325               c:identifier="regress_aliased_caller_alloc">
4326       <return-value transfer-ownership="none">
4327         <type name="none" c:type="void"/>
4328       </return-value>
4329       <parameters>
4330         <parameter name="boxed"
4331                    direction="out"
4332                    caller-allocates="1"
4333                    transfer-ownership="none">
4334           <type name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed*"/>
4335         </parameter>
4336       </parameters>
4337     </function>
4338     <function name="annotation_attribute_func"
4339               c:identifier="regress_annotation_attribute_func">
4340       <return-value transfer-ownership="none">
4341         <attribute name="some.other.annotation" value="value2"/>
4342         <attribute name="yet.another.annotation" value="another_value"/>
4343         <doc xml:space="preserve">The return value.</doc>
4344         <type name="gint" c:type="gint"/>
4345       </return-value>
4346       <parameters>
4347         <parameter name="object" transfer-ownership="none">
4348           <doc xml:space="preserve">A #RegressAnnotationObject.</doc>
4349           <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
4350         </parameter>
4351         <parameter name="data" transfer-ownership="none">
4352           <attribute name="some.annotation" value="value"/>
4353           <attribute name="another.annotation" value="blahvalue"/>
4354           <doc xml:space="preserve">Some data.</doc>
4355           <type name="utf8" c:type="const gchar*"/>
4356         </parameter>
4357       </parameters>
4358     </function>
4359     <function name="annotation_custom_destroy"
4360               c:identifier="regress_annotation_custom_destroy">
4361       <doc xml:space="preserve">Test messing up the heuristic of closure/destroy-notification
4362 detection, and fixing it via annotations.</doc>
4363       <return-value transfer-ownership="none">
4364         <type name="none" c:type="void"/>
4365       </return-value>
4366       <parameters>
4367         <parameter name="callback"
4368                    transfer-ownership="none"
4369                    scope="notified"
4370                    closure="2"
4371                    destroy="1">
4372           <doc xml:space="preserve">Destroy notification</doc>
4373           <type name="AnnotationCallback" c:type="RegressAnnotationCallback"/>
4374         </parameter>
4375         <parameter name="destroy"
4376                    transfer-ownership="none"
4377                    scope="notified"
4378                    closure="2">
4379           <type name="AnnotationNotifyFunc"
4380                 c:type="RegressAnnotationNotifyFunc"/>
4381         </parameter>
4382         <parameter name="data"
4383                    transfer-ownership="none"
4384                    nullable="1"
4385                    allow-none="1">
4386           <type name="gpointer" c:type="gpointer"/>
4387         </parameter>
4388       </parameters>
4389     </function>
4390     <function name="annotation_get_source_file"
4391               c:identifier="regress_annotation_get_source_file">
4392       <return-value transfer-ownership="full">
4393         <doc xml:space="preserve">Source file</doc>
4394         <type name="filename" c:type="char*"/>
4395       </return-value>
4396     </function>
4397     <function name="annotation_init" c:identifier="regress_annotation_init">
4398       <return-value transfer-ownership="none">
4399         <type name="none" c:type="void"/>
4400       </return-value>
4401       <parameters>
4402         <parameter name="argc"
4403                    direction="inout"
4404                    caller-allocates="0"
4405                    transfer-ownership="full">
4406           <doc xml:space="preserve">The number of args.</doc>
4407           <type name="gint" c:type="int*"/>
4408         </parameter>
4409         <parameter name="argv"
4410                    direction="inout"
4411                    caller-allocates="0"
4412                    transfer-ownership="full">
4413           <doc xml:space="preserve">The arguments.</doc>
4414           <array length="0" zero-terminated="0" c:type="char***">
4415             <type name="utf8" c:type="char**"/>
4416           </array>
4417         </parameter>
4418       </parameters>
4419     </function>
4420     <function name="annotation_invalid_regress_annotation"
4421               c:identifier="regress_annotation_invalid_regress_annotation">
4422       <return-value transfer-ownership="none">
4423         <type name="none" c:type="void"/>
4424       </return-value>
4425       <parameters>
4426         <parameter name="foo" transfer-ownership="none">
4427           <doc xml:space="preserve">some text (e.g. example) or else</doc>
4428           <type name="gint" c:type="int"/>
4429         </parameter>
4430       </parameters>
4431     </function>
4432     <function name="annotation_ptr_array"
4433               c:identifier="regress_annotation_ptr_array">
4434       <return-value transfer-ownership="none">
4435         <type name="none" c:type="void"/>
4436       </return-value>
4437       <parameters>
4438         <parameter name="array" transfer-ownership="none">
4439           <doc xml:space="preserve">the array</doc>
4440           <array name="GLib.PtrArray" c:type="GPtrArray*">
4441             <type name="GObject.Value"/>
4442           </array>
4443         </parameter>
4444       </parameters>
4445     </function>
4446     <function name="annotation_return_array"
4447               c:identifier="regress_annotation_return_array">
4448       <return-value transfer-ownership="full">
4449         <doc xml:space="preserve">The return value</doc>
4450         <array length="0" zero-terminated="0" c:type="char**">
4451           <type name="utf8"/>
4452         </array>
4453       </return-value>
4454       <parameters>
4455         <parameter name="length"
4456                    direction="out"
4457                    caller-allocates="0"
4458                    transfer-ownership="full">
4459           <doc xml:space="preserve">Number of return values</doc>
4460           <type name="gint" c:type="int*"/>
4461         </parameter>
4462       </parameters>
4463     </function>
4464     <function name="annotation_return_filename"
4465               c:identifier="regress_annotation_return_filename">
4466       <return-value transfer-ownership="full">
4467         <doc xml:space="preserve">An annotated filename</doc>
4468         <type name="filename" c:type="gchar*"/>
4469       </return-value>
4470     </function>
4471     <function name="annotation_set_source_file"
4472               c:identifier="regress_annotation_set_source_file">
4473       <return-value transfer-ownership="none">
4474         <type name="none" c:type="void"/>
4475       </return-value>
4476       <parameters>
4477         <parameter name="fname" transfer-ownership="none">
4478           <doc xml:space="preserve">Source file</doc>
4479           <type name="filename" c:type="char*"/>
4480         </parameter>
4481       </parameters>
4482     </function>
4483     <function name="annotation_space_after_comment_bug631690"
4484               c:identifier="regress_annotation_space_after_comment_bug631690">
4485       <doc xml:space="preserve">Explicitly test having a space after the ** here.</doc>
4486       <return-value transfer-ownership="none">
4487         <type name="none" c:type="void"/>
4488       </return-value>
4489     </function>
4490     <function name="annotation_string_array_length"
4491               c:identifier="regress_annotation_string_array_length">
4492       <return-value transfer-ownership="none">
4493         <type name="none" c:type="void"/>
4494       </return-value>
4495       <parameters>
4496         <parameter name="n_properties" transfer-ownership="none">
4497           <type name="guint" c:type="guint"/>
4498         </parameter>
4499         <parameter name="properties" transfer-ownership="none">
4500           <array length="0" zero-terminated="0" c:type="gchar*">
4501             <type name="utf8"/>
4502           </array>
4503         </parameter>
4504       </parameters>
4505     </function>
4506     <function name="annotation_string_zero_terminated"
4507               c:identifier="regress_annotation_string_zero_terminated">
4508       <return-value transfer-ownership="full">
4509         <doc xml:space="preserve">The return value</doc>
4510         <array c:type="char**">
4511           <type name="utf8"/>
4512         </array>
4513       </return-value>
4514     </function>
4515     <function name="annotation_string_zero_terminated_out"
4516               c:identifier="regress_annotation_string_zero_terminated_out">
4517       <return-value transfer-ownership="none">
4518         <type name="none" c:type="void"/>
4519       </return-value>
4520       <parameters>
4521         <parameter name="out"
4522                    direction="inout"
4523                    caller-allocates="0"
4524                    transfer-ownership="full">
4525           <array c:type="char***">
4526             <type name="utf8" c:type="char**"/>
4527           </array>
4528         </parameter>
4529       </parameters>
4530     </function>
4531     <function name="annotation_test_parsing_bug630862"
4532               c:identifier="regress_annotation_test_parsing_bug630862">
4533       <doc xml:space="preserve">See https://bugzilla.gnome.org/show_bug.cgi?id=630862</doc>
4534       <return-value transfer-ownership="none">
4535         <doc xml:space="preserve">An object, note the colon:in here</doc>
4536         <type name="GObject.Object" c:type="GObject*"/>
4537       </return-value>
4538     </function>
4539     <function name="annotation_transfer_floating"
4540               c:identifier="regress_annotation_transfer_floating">
4541       <return-value transfer-ownership="none">
4542         <doc xml:space="preserve">A floating object</doc>
4543         <type name="GObject.Object" c:type="GObject*"/>
4544       </return-value>
4545     </function>
4546     <function name="annotation_versioned"
4547               c:identifier="regress_annotation_versioned"
4548               version="0.6">
4549       <return-value transfer-ownership="none">
4550         <type name="none" c:type="void"/>
4551       </return-value>
4552     </function>
4553     <function name="atest_error_quark"
4554               c:identifier="regress_atest_error_quark">
4555       <return-value transfer-ownership="none">
4556         <type name="GLib.Quark" c:type="GQuark"/>
4557       </return-value>
4558     </function>
4559     <function name="foo_async_ready_callback"
4560               c:identifier="regress_foo_async_ready_callback">
4561       <return-value transfer-ownership="none">
4562         <type name="none" c:type="void"/>
4563       </return-value>
4564       <parameters>
4565         <parameter name="cancellable"
4566                    transfer-ownership="none"
4567                    nullable="1"
4568                    allow-none="1">
4569           <type name="Gio.Cancellable" c:type="GCancellable*"/>
4570         </parameter>
4571         <parameter name="callback"
4572                    transfer-ownership="none"
4573                    nullable="1"
4574                    allow-none="1"
4575                    scope="async"
4576                    closure="2">
4577           <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
4578         </parameter>
4579         <parameter name="user_data"
4580                    transfer-ownership="none"
4581                    nullable="1"
4582                    allow-none="1">
4583           <type name="gpointer" c:type="gpointer"/>
4584         </parameter>
4585       </parameters>
4586     </function>
4587     <function name="foo_destroy_notify_callback"
4588               c:identifier="regress_foo_destroy_notify_callback">
4589       <return-value transfer-ownership="none">
4590         <type name="none" c:type="void"/>
4591       </return-value>
4592       <parameters>
4593         <parameter name="callback"
4594                    transfer-ownership="none"
4595                    scope="notified"
4596                    closure="1"
4597                    destroy="2">
4598           <type name="FooCallback" c:type="RegressFooCallback"/>
4599         </parameter>
4600         <parameter name="data"
4601                    transfer-ownership="none"
4602                    nullable="1"
4603                    allow-none="1">
4604           <type name="gpointer" c:type="gpointer"/>
4605         </parameter>
4606         <parameter name="destroy" transfer-ownership="none" scope="async">
4607           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4608         </parameter>
4609       </parameters>
4610     </function>
4611     <function name="foo_enum_type_method"
4612               c:identifier="regress_foo_enum_type_method"
4613               moved-to="FooEnumType.method">
4614       <return-value transfer-ownership="none">
4615         <type name="gint" c:type="int"/>
4616       </return-value>
4617       <parameters>
4618         <parameter name="regress_foo_enum" transfer-ownership="none">
4619           <type name="FooEnumType" c:type="RegressFooEnumType"/>
4620         </parameter>
4621       </parameters>
4622     </function>
4623     <function name="foo_enum_type_returnv"
4624               c:identifier="regress_foo_enum_type_returnv"
4625               moved-to="FooEnumType.returnv">
4626       <return-value transfer-ownership="none">
4627         <type name="FooEnumType" c:type="RegressFooEnumType"/>
4628       </return-value>
4629       <parameters>
4630         <parameter name="x" transfer-ownership="none">
4631           <type name="gint" c:type="int"/>
4632         </parameter>
4633       </parameters>
4634     </function>
4635     <function name="foo_error_quark"
4636               c:identifier="regress_foo_error_quark"
4637               moved-to="FooError.quark">
4638       <return-value transfer-ownership="none">
4639         <type name="GLib.Quark" c:type="GQuark"/>
4640       </return-value>
4641     </function>
4642     <function name="foo_init" c:identifier="regress_foo_init">
4643       <return-value transfer-ownership="none">
4644         <type name="gint" c:type="gint"/>
4645       </return-value>
4646     </function>
4647     <function name="foo_interface_static_method"
4648               c:identifier="regress_foo_interface_static_method"
4649               moved-to="FooInterface.static_method">
4650       <return-value transfer-ownership="none">
4651         <type name="none" c:type="void"/>
4652       </return-value>
4653       <parameters>
4654         <parameter name="x" transfer-ownership="none">
4655           <type name="gint" c:type="int"/>
4656         </parameter>
4657       </parameters>
4658     </function>
4659     <function name="foo_method_external_references"
4660               c:identifier="regress_foo_method_external_references">
4661       <return-value transfer-ownership="none">
4662         <type name="none" c:type="void"/>
4663       </return-value>
4664       <parameters>
4665         <parameter name="object" transfer-ownership="none">
4666           <type name="Utility.Object" c:type="UtilityObject*"/>
4667         </parameter>
4668         <parameter name="e" transfer-ownership="none">
4669           <type name="Utility.EnumType" c:type="UtilityEnumType"/>
4670         </parameter>
4671         <parameter name="f" transfer-ownership="none">
4672           <type name="Utility.FlagType" c:type="UtilityFlagType"/>
4673         </parameter>
4674         <parameter name="s" transfer-ownership="none">
4675           <type name="Utility.Struct" c:type="UtilityStruct"/>
4676         </parameter>
4677       </parameters>
4678     </function>
4679     <function name="foo_not_a_constructor_new"
4680               c:identifier="regress_foo_not_a_constructor_new">
4681       <doc xml:space="preserve">This should be scanned as a top-level function, and shouldn't cause
4682 a "Can't find matching type for constructor" warning.</doc>
4683       <return-value transfer-ownership="none">
4684         <type name="FooObject" c:type="RegressFooObject*"/>
4685       </return-value>
4686     </function>
4687     <function name="foo_rectangle_new"
4688               c:identifier="regress_foo_rectangle_new"
4689               moved-to="FooRectangle.new"
4690               introspectable="0">
4691       <doc xml:space="preserve">This is a C convenience constructor; we have to (skip)
4692 it because it's not a boxed type.</doc>
4693       <return-value>
4694         <type name="FooRectangle" c:type="RegressFooRectangle*"/>
4695       </return-value>
4696       <parameters>
4697         <parameter name="x" transfer-ownership="none">
4698           <type name="gint" c:type="int"/>
4699         </parameter>
4700         <parameter name="y" transfer-ownership="none">
4701           <type name="gint" c:type="int"/>
4702         </parameter>
4703         <parameter name="width" transfer-ownership="none">
4704           <type name="gint" c:type="int"/>
4705         </parameter>
4706         <parameter name="height" transfer-ownership="none">
4707           <type name="gint" c:type="int"/>
4708         </parameter>
4709       </parameters>
4710     </function>
4711     <function name="foo_skip_me"
4712               c:identifier="regress_foo_skip_me"
4713               introspectable="0">
4714       <doc xml:space="preserve">Does something that's only interesting from C and should not be
4715 exposed to language bindings.</doc>
4716       <return-value transfer-ownership="none">
4717         <type name="none" c:type="void"/>
4718       </return-value>
4719       <parameters>
4720         <parameter name="fs" transfer-ownership="none">
4721           <doc xml:space="preserve">a #RegressFooSkippable</doc>
4722           <type name="FooSkippable" c:type="RegressFooSkippable"/>
4723         </parameter>
4724       </parameters>
4725     </function>
4726     <function name="foo_some_variant"
4727               c:identifier="regress_foo_some_variant"
4728               introspectable="0">
4729       <return-value transfer-ownership="none">
4730         <type name="none" c:type="void"/>
4731       </return-value>
4732       <parameters>
4733         <parameter name="x" transfer-ownership="none">
4734           <type name="guint" c:type="guint"/>
4735         </parameter>
4736         <parameter name="args" transfer-ownership="none">
4737           <type name="va_list" c:type="va_list"/>
4738         </parameter>
4739       </parameters>
4740     </function>
4741     <function name="foo_some_variant_ptr"
4742               c:identifier="regress_foo_some_variant_ptr"
4743               introspectable="0">
4744       <return-value transfer-ownership="none">
4745         <type name="none" c:type="void"/>
4746       </return-value>
4747       <parameters>
4748         <parameter name="x" transfer-ownership="none">
4749           <type name="guint" c:type="guint"/>
4750         </parameter>
4751         <parameter name="args" transfer-ownership="none">
4752           <type name="va_list" c:type="va_list*"/>
4753         </parameter>
4754       </parameters>
4755     </function>
4756     <function name="foo_test_array" c:identifier="regress_foo_test_array">
4757       <return-value transfer-ownership="container">
4758         <array name="GLib.Array" c:type="GArray*">
4759           <type name="utf8"/>
4760         </array>
4761       </return-value>
4762     </function>
4763     <function name="foo_test_const_char_param"
4764               c:identifier="regress_foo_test_const_char_param">
4765       <return-value transfer-ownership="none">
4766         <type name="none" c:type="void"/>
4767       </return-value>
4768       <parameters>
4769         <parameter name="param" transfer-ownership="none">
4770           <type name="utf8" c:type="const char*"/>
4771         </parameter>
4772       </parameters>
4773     </function>
4774     <function name="foo_test_const_char_retval"
4775               c:identifier="regress_foo_test_const_char_retval">
4776       <return-value transfer-ownership="none">
4777         <type name="utf8" c:type="const char*"/>
4778       </return-value>
4779     </function>
4780     <function name="foo_test_const_struct_param"
4781               c:identifier="regress_foo_test_const_struct_param">
4782       <return-value transfer-ownership="none">
4783         <type name="none" c:type="void"/>
4784       </return-value>
4785       <parameters>
4786         <parameter name="param" transfer-ownership="none">
4787           <type name="FooStruct" c:type="const RegressFooStruct*"/>
4788         </parameter>
4789       </parameters>
4790     </function>
4791     <function name="foo_test_const_struct_retval"
4792               c:identifier="regress_foo_test_const_struct_retval">
4793       <return-value transfer-ownership="none">
4794         <type name="FooStruct" c:type="const RegressFooStruct*"/>
4795       </return-value>
4796     </function>
4797     <function name="foo_test_string_array"
4798               c:identifier="regress_foo_test_string_array">
4799       <return-value transfer-ownership="none">
4800         <type name="none" c:type="void"/>
4801       </return-value>
4802       <parameters>
4803         <parameter name="array" transfer-ownership="none">
4804           <array c:type="char**">
4805             <type name="utf8" c:type="char*"/>
4806           </array>
4807         </parameter>
4808       </parameters>
4809     </function>
4810     <function name="foo_test_string_array_with_g"
4811               c:identifier="regress_foo_test_string_array_with_g">
4812       <return-value transfer-ownership="none">
4813         <type name="none" c:type="void"/>
4814       </return-value>
4815       <parameters>
4816         <parameter name="array" transfer-ownership="none">
4817           <array c:type="gchar**">
4818             <type name="utf8" c:type="gchar*"/>
4819           </array>
4820         </parameter>
4821       </parameters>
4822     </function>
4823     <function name="foo_test_unsigned_qualifier"
4824               c:identifier="regress_foo_test_unsigned_qualifier">
4825       <return-value transfer-ownership="none">
4826         <type name="none" c:type="void"/>
4827       </return-value>
4828       <parameters>
4829         <parameter name="unsigned_param" transfer-ownership="none">
4830           <type name="guint" c:type="unsigned int"/>
4831         </parameter>
4832       </parameters>
4833     </function>
4834     <function name="foo_test_unsigned_type"
4835               c:identifier="regress_foo_test_unsigned_type">
4836       <return-value transfer-ownership="none">
4837         <type name="none" c:type="void"/>
4838       </return-value>
4839       <parameters>
4840         <parameter name="unsigned_param" transfer-ownership="none">
4841           <type name="guint" c:type="unsigned"/>
4842         </parameter>
4843       </parameters>
4844     </function>
4845     <function name="foo_test_varargs_callback"
4846               c:identifier="regress_foo_test_varargs_callback"
4847               introspectable="0">
4848       <return-value transfer-ownership="none">
4849         <type name="none" c:type="void"/>
4850       </return-value>
4851       <parameters>
4852         <parameter name="i" transfer-ownership="none">
4853           <type name="gint" c:type="gint"/>
4854         </parameter>
4855         <parameter name="callback" transfer-ownership="none">
4856           <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
4857         </parameter>
4858       </parameters>
4859     </function>
4860     <function name="foo_test_varargs_callback2"
4861               c:identifier="regress_foo_test_varargs_callback2"
4862               introspectable="0">
4863       <return-value transfer-ownership="none">
4864         <type name="none" c:type="void"/>
4865       </return-value>
4866       <parameters>
4867         <parameter name="callback" transfer-ownership="none">
4868           <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
4869         </parameter>
4870       </parameters>
4871     </function>
4872     <function name="foo_test_varargs_callback3"
4873               c:identifier="regress_foo_test_varargs_callback3"
4874               introspectable="0">
4875       <return-value transfer-ownership="none">
4876         <type name="none" c:type="void"/>
4877       </return-value>
4878       <parameters>
4879         <parameter name="callback" transfer-ownership="none">
4880           <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
4881         </parameter>
4882         <parameter name="callback2" transfer-ownership="none">
4883           <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
4884         </parameter>
4885       </parameters>
4886     </function>
4887     <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
4888       <return-value transfer-ownership="none">
4889         <type name="none" c:type="void"/>
4890       </return-value>
4891       <parameters>
4892         <parameter name="obj"
4893                    transfer-ownership="none"
4894                    nullable="1"
4895                    allow-none="1">
4896           <doc xml:space="preserve">A #RegressTestObj</doc>
4897           <type name="TestObj" c:type="RegressTestObj*"/>
4898         </parameter>
4899       </parameters>
4900     </function>
4901     <function name="func_obj_nullable_in"
4902               c:identifier="regress_func_obj_nullable_in">
4903       <return-value transfer-ownership="none">
4904         <type name="none" c:type="void"/>
4905       </return-value>
4906       <parameters>
4907         <parameter name="obj"
4908                    transfer-ownership="none"
4909                    nullable="1"
4910                    allow-none="1">
4911           <doc xml:space="preserve">A #RegressTestObj</doc>
4912           <type name="TestObj" c:type="RegressTestObj*"/>
4913         </parameter>
4914       </parameters>
4915     </function>
4916     <function name="get_variant" c:identifier="regress_get_variant">
4917       <return-value transfer-ownership="none">
4918         <doc xml:space="preserve">A new variant</doc>
4919         <type name="GLib.Variant" c:type="GVariant*"/>
4920       </return-value>
4921     </function>
4922     <function name="global_get_flags_out"
4923               c:identifier="regress_global_get_flags_out">
4924       <return-value transfer-ownership="none">
4925         <type name="none" c:type="void"/>
4926       </return-value>
4927       <parameters>
4928         <parameter name="v"
4929                    direction="out"
4930                    caller-allocates="0"
4931                    transfer-ownership="full">
4932           <doc xml:space="preserve">A flags value</doc>
4933           <type name="TestFlags" c:type="RegressTestFlags*"/>
4934         </parameter>
4935       </parameters>
4936     </function>
4937     <function name="has_parameter_named_attrs"
4938               c:identifier="regress_has_parameter_named_attrs">
4939       <doc xml:space="preserve">This test case mirrors GnomeKeyringPasswordSchema from
4940 libgnome-keyring.</doc>
4941       <return-value transfer-ownership="none">
4942         <type name="none" c:type="void"/>
4943       </return-value>
4944       <parameters>
4945         <parameter name="foo" transfer-ownership="none">
4946           <doc xml:space="preserve">some int</doc>
4947           <type name="gint" c:type="int"/>
4948         </parameter>
4949         <parameter name="attributes" transfer-ownership="none">
4950           <doc xml:space="preserve">list of attributes</doc>
4951           <array zero-terminated="0" c:type="gpointer" fixed-size="32">
4952             <type name="guint32" c:type="gpointer"/>
4953           </array>
4954         </parameter>
4955       </parameters>
4956     </function>
4957     <function name="introspectable_via_alias"
4958               c:identifier="regress_introspectable_via_alias">
4959       <return-value transfer-ownership="none">
4960         <type name="none" c:type="void"/>
4961       </return-value>
4962       <parameters>
4963         <parameter name="data" transfer-ownership="none">
4964           <type name="PtrArrayAlias" c:type="RegressPtrArrayAlias*"/>
4965         </parameter>
4966       </parameters>
4967     </function>
4968     <function name="not_introspectable_via_alias"
4969               c:identifier="regress_not_introspectable_via_alias"
4970               introspectable="0">
4971       <return-value transfer-ownership="none">
4972         <type name="none" c:type="void"/>
4973       </return-value>
4974       <parameters>
4975         <parameter name="ok" transfer-ownership="none">
4976           <type name="VaListAlias" c:type="RegressVaListAlias"/>
4977         </parameter>
4978       </parameters>
4979     </function>
4980     <function name="random_function_with_skipped_structure"
4981               c:identifier="regress_random_function_with_skipped_structure"
4982               introspectable="0">
4983       <return-value transfer-ownership="none">
4984         <type name="none" c:type="void"/>
4985       </return-value>
4986       <parameters>
4987         <parameter name="x" transfer-ownership="none">
4988           <type name="gint" c:type="int"/>
4989         </parameter>
4990         <parameter name="foo" transfer-ownership="none">
4991           <type name="SkippedStructure" c:type="RegressSkippedStructure*"/>
4992         </parameter>
4993         <parameter name="v" transfer-ownership="none">
4994           <type name="gdouble" c:type="double"/>
4995         </parameter>
4996       </parameters>
4997     </function>
4998     <function name="set_abort_on_error"
4999               c:identifier="regress_set_abort_on_error">
5000       <return-value transfer-ownership="none">
5001         <type name="none" c:type="void"/>
5002       </return-value>
5003       <parameters>
5004         <parameter name="abort_on_error" transfer-ownership="none">
5005           <type name="gboolean" c:type="gboolean"/>
5006         </parameter>
5007       </parameters>
5008     </function>
5009     <function name="test_abc_error_quark"
5010               c:identifier="regress_test_abc_error_quark"
5011               moved-to="TestABCError.quark">
5012       <return-value transfer-ownership="none">
5013         <type name="GLib.Quark" c:type="GQuark"/>
5014       </return-value>
5015     </function>
5016     <function name="test_array_callback"
5017               c:identifier="regress_test_array_callback">
5018       <return-value transfer-ownership="none">
5019         <type name="gint" c:type="int"/>
5020       </return-value>
5021       <parameters>
5022         <parameter name="callback" transfer-ownership="none" scope="call">
5023           <type name="TestCallbackArray" c:type="RegressTestCallbackArray"/>
5024         </parameter>
5025       </parameters>
5026     </function>
5027     <function name="test_array_fixed_out_objects"
5028               c:identifier="regress_test_array_fixed_out_objects">
5029       <return-value transfer-ownership="none">
5030         <type name="none" c:type="void"/>
5031       </return-value>
5032       <parameters>
5033         <parameter name="objs"
5034                    direction="out"
5035                    caller-allocates="0"
5036                    transfer-ownership="full">
5037           <doc xml:space="preserve">An array of #RegressTestObj</doc>
5038           <array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
5039             <type name="TestObj" c:type="RegressTestObj**"/>
5040           </array>
5041         </parameter>
5042       </parameters>
5043     </function>
5044     <function name="test_array_fixed_size_int_in"
5045               c:identifier="regress_test_array_fixed_size_int_in">
5046       <return-value transfer-ownership="none">
5047         <doc xml:space="preserve">the sum of the items in @ints</doc>
5048         <type name="gint" c:type="int"/>
5049       </return-value>
5050       <parameters>
5051         <parameter name="ints" transfer-ownership="none">
5052           <doc xml:space="preserve">a list of 5 integers</doc>
5053           <array zero-terminated="0" c:type="int*" fixed-size="5">
5054             <type name="gint" c:type="int"/>
5055           </array>
5056         </parameter>
5057       </parameters>
5058     </function>
5059     <function name="test_array_fixed_size_int_out"
5060               c:identifier="regress_test_array_fixed_size_int_out">
5061       <return-value transfer-ownership="none">
5062         <type name="none" c:type="void"/>
5063       </return-value>
5064       <parameters>
5065         <parameter name="ints"
5066                    direction="out"
5067                    caller-allocates="0"
5068                    transfer-ownership="full">
5069           <doc xml:space="preserve">a list of 5 integers ranging from 0 to 4</doc>
5070           <array zero-terminated="0" c:type="int**" fixed-size="5">
5071             <type name="gint" c:type="int*"/>
5072           </array>
5073         </parameter>
5074       </parameters>
5075     </function>
5076     <function name="test_array_fixed_size_int_return"
5077               c:identifier="regress_test_array_fixed_size_int_return">
5078       <return-value transfer-ownership="full">
5079         <doc xml:space="preserve">a list of 5 integers ranging from 0 to 4</doc>
5080         <array zero-terminated="0" c:type="int*" fixed-size="5">
5081           <type name="gint" c:type="int"/>
5082         </array>
5083       </return-value>
5084     </function>
5085     <function name="test_array_gint16_in"
5086               c:identifier="regress_test_array_gint16_in">
5087       <return-value transfer-ownership="none">
5088         <type name="gint" c:type="int"/>
5089       </return-value>
5090       <parameters>
5091         <parameter name="n_ints" transfer-ownership="none">
5092           <type name="gint" c:type="int"/>
5093         </parameter>
5094         <parameter name="ints" transfer-ownership="none">
5095           <doc xml:space="preserve">List of ints</doc>
5096           <array length="0" zero-terminated="0" c:type="gint16*">
5097             <type name="gint16" c:type="gint16"/>
5098           </array>
5099         </parameter>
5100       </parameters>
5101     </function>
5102     <function name="test_array_gint32_in"
5103               c:identifier="regress_test_array_gint32_in">
5104       <return-value transfer-ownership="none">
5105         <type name="gint32" c:type="gint32"/>
5106       </return-value>
5107       <parameters>
5108         <parameter name="n_ints" transfer-ownership="none">
5109           <type name="gint" c:type="int"/>
5110         </parameter>
5111         <parameter name="ints" transfer-ownership="none">
5112           <doc xml:space="preserve">List of ints</doc>
5113           <array length="0" zero-terminated="0" c:type="gint32*">
5114             <type name="gint32" c:type="gint32"/>
5115           </array>
5116         </parameter>
5117       </parameters>
5118     </function>
5119     <function name="test_array_gint64_in"
5120               c:identifier="regress_test_array_gint64_in">
5121       <return-value transfer-ownership="none">
5122         <type name="gint64" c:type="gint64"/>
5123       </return-value>
5124       <parameters>
5125         <parameter name="n_ints" transfer-ownership="none">
5126           <type name="gint" c:type="int"/>
5127         </parameter>
5128         <parameter name="ints" transfer-ownership="none">
5129           <doc xml:space="preserve">List of ints</doc>
5130           <array length="0" zero-terminated="0" c:type="gint64*">
5131             <type name="gint64" c:type="gint64"/>
5132           </array>
5133         </parameter>
5134       </parameters>
5135     </function>
5136     <function name="test_array_gint8_in"
5137               c:identifier="regress_test_array_gint8_in">
5138       <return-value transfer-ownership="none">
5139         <type name="gint" c:type="int"/>
5140       </return-value>
5141       <parameters>
5142         <parameter name="n_ints" transfer-ownership="none">
5143           <type name="gint" c:type="int"/>
5144         </parameter>
5145         <parameter name="ints" transfer-ownership="none">
5146           <doc xml:space="preserve">List of ints</doc>
5147           <array length="0" zero-terminated="0" c:type="gint8*">
5148             <type name="gint8" c:type="gint8"/>
5149           </array>
5150         </parameter>
5151       </parameters>
5152     </function>
5153     <function name="test_array_gtype_in"
5154               c:identifier="regress_test_array_gtype_in">
5155       <return-value transfer-ownership="full">
5156         <doc xml:space="preserve">string representation of provided types</doc>
5157         <type name="utf8" c:type="char*"/>
5158       </return-value>
5159       <parameters>
5160         <parameter name="n_types" transfer-ownership="none">
5161           <type name="gint" c:type="int"/>
5162         </parameter>
5163         <parameter name="types" transfer-ownership="none">
5164           <doc xml:space="preserve">List of types</doc>
5165           <array length="0" zero-terminated="0" c:type="GType*">
5166             <type name="GType" c:type="GType"/>
5167           </array>
5168         </parameter>
5169       </parameters>
5170     </function>
5171     <function name="test_array_inout_callback"
5172               c:identifier="regress_test_array_inout_callback">
5173       <return-value transfer-ownership="none">
5174         <type name="gint" c:type="int"/>
5175       </return-value>
5176       <parameters>
5177         <parameter name="callback" transfer-ownership="none" scope="call">
5178           <type name="TestCallbackArrayInOut"
5179                 c:type="RegressTestCallbackArrayInOut"/>
5180         </parameter>
5181       </parameters>
5182     </function>
5183     <function name="test_array_int_full_out"
5184               c:identifier="regress_test_array_int_full_out">
5185       <return-value transfer-ownership="full">
5186         <doc xml:space="preserve">a new array of integers.</doc>
5187         <array length="0" zero-terminated="0" c:type="int*">
5188           <type name="gint" c:type="int"/>
5189         </array>
5190       </return-value>
5191       <parameters>
5192         <parameter name="len"
5193                    direction="out"
5194                    caller-allocates="0"
5195                    transfer-ownership="full">
5196           <doc xml:space="preserve">length of the returned array.</doc>
5197           <type name="gint" c:type="int*"/>
5198         </parameter>
5199       </parameters>
5200     </function>
5201     <function name="test_array_int_in"
5202               c:identifier="regress_test_array_int_in">
5203       <return-value transfer-ownership="none">
5204         <type name="gint" c:type="int"/>
5205       </return-value>
5206       <parameters>
5207         <parameter name="n_ints" transfer-ownership="none">
5208           <type name="gint" c:type="int"/>
5209         </parameter>
5210         <parameter name="ints" transfer-ownership="none">
5211           <doc xml:space="preserve">List of ints</doc>
5212           <array length="0" zero-terminated="0" c:type="int*">
5213             <type name="gint" c:type="int"/>
5214           </array>
5215         </parameter>
5216       </parameters>
5217     </function>
5218     <function name="test_array_int_inout"
5219               c:identifier="regress_test_array_int_inout">
5220       <return-value transfer-ownership="none">
5221         <type name="none" c:type="void"/>
5222       </return-value>
5223       <parameters>
5224         <parameter name="n_ints"
5225                    direction="inout"
5226                    caller-allocates="0"
5227                    transfer-ownership="full">
5228           <doc xml:space="preserve">the length of @ints</doc>
5229           <type name="gint" c:type="int*"/>
5230         </parameter>
5231         <parameter name="ints"
5232                    direction="inout"
5233                    caller-allocates="0"
5234                    transfer-ownership="full">
5235           <doc xml:space="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
5236           <array length="0" zero-terminated="0" c:type="int**">
5237             <type name="gint" c:type="int*"/>
5238           </array>
5239         </parameter>
5240       </parameters>
5241     </function>
5242     <function name="test_array_int_none_out"
5243               c:identifier="regress_test_array_int_none_out">
5244       <return-value transfer-ownership="none">
5245         <doc xml:space="preserve">a static array of integers.</doc>
5246         <array length="0" zero-terminated="0" c:type="int*">
5247           <type name="gint" c:type="int"/>
5248         </array>
5249       </return-value>
5250       <parameters>
5251         <parameter name="len"
5252                    direction="out"
5253                    caller-allocates="0"
5254                    transfer-ownership="full">
5255           <doc xml:space="preserve">length of the returned array.</doc>
5256           <type name="gint" c:type="int*"/>
5257         </parameter>
5258       </parameters>
5259     </function>
5260     <function name="test_array_int_null_in"
5261               c:identifier="regress_test_array_int_null_in">
5262       <return-value transfer-ownership="none">
5263         <type name="none" c:type="void"/>
5264       </return-value>
5265       <parameters>
5266         <parameter name="arr"
5267                    transfer-ownership="none"
5268                    nullable="1"
5269                    allow-none="1">
5270           <array length="1" zero-terminated="0" c:type="int*">
5271             <type name="gint" c:type="int"/>
5272           </array>
5273         </parameter>
5274         <parameter name="len" transfer-ownership="none">
5275           <doc xml:space="preserve">length</doc>
5276           <type name="gint" c:type="int"/>
5277         </parameter>
5278       </parameters>
5279     </function>
5280     <function name="test_array_int_null_out"
5281               c:identifier="regress_test_array_int_null_out">
5282       <return-value transfer-ownership="none">
5283         <type name="none" c:type="void"/>
5284       </return-value>
5285       <parameters>
5286         <parameter name="arr"
5287                    direction="out"
5288                    caller-allocates="0"
5289                    transfer-ownership="full"
5290                    optional="1"
5291                    allow-none="1">
5292           <array length="1" zero-terminated="0" c:type="int**">
5293             <type name="gint" c:type="int*"/>
5294           </array>
5295         </parameter>
5296         <parameter name="len"
5297                    direction="out"
5298                    caller-allocates="0"
5299                    transfer-ownership="full">
5300           <doc xml:space="preserve">length</doc>
5301           <type name="gint" c:type="int*"/>
5302         </parameter>
5303       </parameters>
5304     </function>
5305     <function name="test_array_int_out"
5306               c:identifier="regress_test_array_int_out">
5307       <return-value transfer-ownership="none">
5308         <type name="none" c:type="void"/>
5309       </return-value>
5310       <parameters>
5311         <parameter name="n_ints"
5312                    direction="out"
5313                    caller-allocates="0"
5314                    transfer-ownership="full">
5315           <doc xml:space="preserve">the length of @ints</doc>
5316           <type name="gint" c:type="int*"/>
5317         </parameter>
5318         <parameter name="ints"
5319                    direction="out"
5320                    caller-allocates="0"
5321                    transfer-ownership="full">
5322           <doc xml:space="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
5323           <array length="0" zero-terminated="0" c:type="int**">
5324             <type name="gint" c:type="int*"/>
5325           </array>
5326         </parameter>
5327       </parameters>
5328     </function>
5329     <function name="test_array_struct_out"
5330               c:identifier="regress_test_array_struct_out">
5331       <doc xml:space="preserve">This is similar to gdk_keymap_get_entries_for_keyval().</doc>
5332       <return-value transfer-ownership="none">
5333         <type name="none" c:type="void"/>
5334       </return-value>
5335       <parameters>
5336         <parameter name="arr"
5337                    direction="out"
5338                    caller-allocates="0"
5339                    transfer-ownership="full">
5340           <array length="1" zero-terminated="0" c:type="RegressTestStructA**">
5341             <type name="TestStructA" c:type="RegressTestStructA*"/>
5342           </array>
5343         </parameter>
5344         <parameter name="len"
5345                    direction="out"
5346                    caller-allocates="0"
5347                    transfer-ownership="full">
5348           <type name="gint" c:type="int*"/>
5349         </parameter>
5350       </parameters>
5351     </function>
5352     <function name="test_async_ready_callback"
5353               c:identifier="regress_test_async_ready_callback">
5354       <return-value transfer-ownership="none">
5355         <type name="none" c:type="void"/>
5356       </return-value>
5357       <parameters>
5358         <parameter name="callback"
5359                    transfer-ownership="none"
5360                    nullable="1"
5361                    allow-none="1"
5362                    scope="async">
5363           <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
5364         </parameter>
5365       </parameters>
5366     </function>
5367     <function name="test_boolean" c:identifier="regress_test_boolean">
5368       <return-value transfer-ownership="none">
5369         <type name="gboolean" c:type="gboolean"/>
5370       </return-value>
5371       <parameters>
5372         <parameter name="in" transfer-ownership="none">
5373           <type name="gboolean" c:type="gboolean"/>
5374         </parameter>
5375       </parameters>
5376     </function>
5377     <function name="test_boolean_false"
5378               c:identifier="regress_test_boolean_false">
5379       <return-value transfer-ownership="none">
5380         <type name="gboolean" c:type="gboolean"/>
5381       </return-value>
5382       <parameters>
5383         <parameter name="in" transfer-ownership="none">
5384           <type name="gboolean" c:type="gboolean"/>
5385         </parameter>
5386       </parameters>
5387     </function>
5388     <function name="test_boolean_true"
5389               c:identifier="regress_test_boolean_true">
5390       <return-value transfer-ownership="none">
5391         <type name="gboolean" c:type="gboolean"/>
5392       </return-value>
5393       <parameters>
5394         <parameter name="in" transfer-ownership="none">
5395           <type name="gboolean" c:type="gboolean"/>
5396         </parameter>
5397       </parameters>
5398     </function>
5399     <function name="test_boxeds_not_a_method"
5400               c:identifier="regress_test_boxeds_not_a_method">
5401       <return-value transfer-ownership="none">
5402         <type name="none" c:type="void"/>
5403       </return-value>
5404       <parameters>
5405         <parameter name="boxed" transfer-ownership="none">
5406           <type name="TestBoxed" c:type="RegressTestBoxed*"/>
5407         </parameter>
5408       </parameters>
5409     </function>
5410     <function name="test_boxeds_not_a_static"
5411               c:identifier="regress_test_boxeds_not_a_static">
5412       <return-value transfer-ownership="none">
5413         <type name="none" c:type="void"/>
5414       </return-value>
5415     </function>
5416     <function name="test_cairo_context_full_return"
5417               c:identifier="regress_test_cairo_context_full_return">
5418       <return-value transfer-ownership="full">
5419         <type name="cairo.Context" c:type="cairo_t*"/>
5420       </return-value>
5421     </function>
5422     <function name="test_cairo_context_none_in"
5423               c:identifier="regress_test_cairo_context_none_in">
5424       <return-value transfer-ownership="none">
5425         <type name="none" c:type="void"/>
5426       </return-value>
5427       <parameters>
5428         <parameter name="context" transfer-ownership="none">
5429           <type name="cairo.Context" c:type="cairo_t*"/>
5430         </parameter>
5431       </parameters>
5432     </function>
5433     <function name="test_cairo_surface_full_out"
5434               c:identifier="regress_test_cairo_surface_full_out">
5435       <return-value transfer-ownership="none">
5436         <type name="none" c:type="void"/>
5437       </return-value>
5438       <parameters>
5439         <parameter name="surface"
5440                    direction="out"
5441                    caller-allocates="0"
5442                    transfer-ownership="full">
5443           <type name="cairo.Surface" c:type="cairo_surface_t**"/>
5444         </parameter>
5445       </parameters>
5446     </function>
5447     <function name="test_cairo_surface_full_return"
5448               c:identifier="regress_test_cairo_surface_full_return">
5449       <return-value transfer-ownership="full">
5450         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
5451       </return-value>
5452     </function>
5453     <function name="test_cairo_surface_none_in"
5454               c:identifier="regress_test_cairo_surface_none_in">
5455       <return-value transfer-ownership="none">
5456         <type name="none" c:type="void"/>
5457       </return-value>
5458       <parameters>
5459         <parameter name="surface" transfer-ownership="none">
5460           <type name="cairo.Surface" c:type="cairo_surface_t*"/>
5461         </parameter>
5462       </parameters>
5463     </function>
5464     <function name="test_cairo_surface_none_return"
5465               c:identifier="regress_test_cairo_surface_none_return">
5466       <return-value transfer-ownership="none">
5467         <type name="cairo.Surface" c:type="cairo_surface_t*"/>
5468       </return-value>
5469     </function>
5470     <function name="test_callback" c:identifier="regress_test_callback">
5471       <return-value transfer-ownership="none">
5472         <type name="gint" c:type="int"/>
5473       </return-value>
5474       <parameters>
5475         <parameter name="callback"
5476                    transfer-ownership="none"
5477                    nullable="1"
5478                    allow-none="1"
5479                    scope="call">
5480           <type name="TestCallback" c:type="RegressTestCallback"/>
5481         </parameter>
5482       </parameters>
5483     </function>
5484     <function name="test_callback_async"
5485               c:identifier="regress_test_callback_async">
5486       <return-value transfer-ownership="none">
5487         <type name="none" c:type="void"/>
5488       </return-value>
5489       <parameters>
5490         <parameter name="callback"
5491                    transfer-ownership="none"
5492                    scope="async"
5493                    closure="1">
5494           <type name="TestCallbackUserData"
5495                 c:type="RegressTestCallbackUserData"/>
5496         </parameter>
5497         <parameter name="user_data"
5498                    transfer-ownership="none"
5499                    nullable="1"
5500                    allow-none="1">
5501           <type name="gpointer" c:type="gpointer"/>
5502         </parameter>
5503       </parameters>
5504     </function>
5505     <function name="test_callback_destroy_notify"
5506               c:identifier="regress_test_callback_destroy_notify">
5507       <doc xml:space="preserve">Notified - callback persists until a DestroyNotify delegate
5508 is invoked.</doc>
5509       <return-value transfer-ownership="none">
5510         <type name="gint" c:type="int"/>
5511       </return-value>
5512       <parameters>
5513         <parameter name="callback"
5514                    transfer-ownership="none"
5515                    scope="notified"
5516                    closure="1"
5517                    destroy="2">
5518           <type name="TestCallbackUserData"
5519                 c:type="RegressTestCallbackUserData"/>
5520         </parameter>
5521         <parameter name="user_data"
5522                    transfer-ownership="none"
5523                    nullable="1"
5524                    allow-none="1">
5525           <type name="gpointer" c:type="gpointer"/>
5526         </parameter>
5527         <parameter name="notify" transfer-ownership="none" scope="async">
5528           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
5529         </parameter>
5530       </parameters>
5531     </function>
5532     <function name="test_callback_destroy_notify_no_user_data"
5533               c:identifier="regress_test_callback_destroy_notify_no_user_data">
5534       <doc xml:space="preserve">Adds a scope notified callback with no user data. This can invoke an error
5535 condition in bindings which needs to be tested.</doc>
5536       <return-value transfer-ownership="none">
5537         <type name="gint" c:type="int"/>
5538       </return-value>
5539       <parameters>
5540         <parameter name="callback"
5541                    transfer-ownership="none"
5542                    scope="notified"
5543                    destroy="1">
5544           <type name="TestCallbackUserData"
5545                 c:type="RegressTestCallbackUserData"/>
5546         </parameter>
5547         <parameter name="notify" transfer-ownership="none" scope="async">
5548           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
5549         </parameter>
5550       </parameters>
5551     </function>
5552     <function name="test_callback_return_full"
5553               c:identifier="regress_test_callback_return_full">
5554       <return-value transfer-ownership="none">
5555         <type name="none" c:type="void"/>
5556       </return-value>
5557       <parameters>
5558         <parameter name="callback" transfer-ownership="none" scope="call">
5559           <type name="TestCallbackReturnFull"
5560                 c:type="RegressTestCallbackReturnFull"/>
5561         </parameter>
5562       </parameters>
5563     </function>
5564     <function name="test_callback_thaw_async"
5565               c:identifier="regress_test_callback_thaw_async">
5566       <return-value transfer-ownership="none">
5567         <type name="gint" c:type="int"/>
5568       </return-value>
5569     </function>
5570     <function name="test_callback_thaw_notifications"
5571               c:identifier="regress_test_callback_thaw_notifications">
5572       <doc xml:space="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
5573 adding up their return values, and removes them, invoking the
5574 corresponding destroy notfications.</doc>
5575       <return-value transfer-ownership="none">
5576         <doc xml:space="preserve">Sum of the return values of the invoked callbacks.</doc>
5577         <type name="gint" c:type="int"/>
5578       </return-value>
5579     </function>
5580     <function name="test_callback_user_data"
5581               c:identifier="regress_test_callback_user_data">
5582       <doc xml:space="preserve">Call - callback parameter persists for the duration of the method
5583 call and can be released on return.</doc>
5584       <return-value transfer-ownership="none">
5585         <type name="gint" c:type="int"/>
5586       </return-value>
5587       <parameters>
5588         <parameter name="callback"
5589                    transfer-ownership="none"
5590                    scope="call"
5591                    closure="1">
5592           <type name="TestCallbackUserData"
5593                 c:type="RegressTestCallbackUserData"/>
5594         </parameter>
5595         <parameter name="user_data" transfer-ownership="none">
5596           <type name="gpointer" c:type="gpointer"/>
5597         </parameter>
5598       </parameters>
5599     </function>
5600     <function name="test_closure" c:identifier="regress_test_closure">
5601       <return-value transfer-ownership="none">
5602         <type name="gint" c:type="int"/>
5603       </return-value>
5604       <parameters>
5605         <parameter name="closure" transfer-ownership="none">
5606           <type name="GObject.Closure" c:type="GClosure*"/>
5607         </parameter>
5608       </parameters>
5609     </function>
5610     <function name="test_closure_one_arg"
5611               c:identifier="regress_test_closure_one_arg">
5612       <return-value transfer-ownership="none">
5613         <type name="gint" c:type="int"/>
5614       </return-value>
5615       <parameters>
5616         <parameter name="closure" transfer-ownership="none">
5617           <type name="GObject.Closure" c:type="GClosure*"/>
5618         </parameter>
5619         <parameter name="arg" transfer-ownership="none">
5620           <type name="gint" c:type="int"/>
5621         </parameter>
5622       </parameters>
5623     </function>
5624     <function name="test_closure_variant"
5625               c:identifier="regress_test_closure_variant">
5626       <return-value transfer-ownership="full">
5627         <doc xml:space="preserve">the return value of @closure</doc>
5628         <type name="GLib.Variant" c:type="GVariant*"/>
5629       </return-value>
5630       <parameters>
5631         <parameter name="closure" transfer-ownership="none">
5632           <doc xml:space="preserve">GClosure which takes one GVariant and returns a GVariant</doc>
5633           <type name="GObject.Closure" c:type="GClosure*"/>
5634         </parameter>
5635         <parameter name="arg"
5636                    transfer-ownership="none"
5637                    nullable="1"
5638                    allow-none="1">
5639           <doc xml:space="preserve">a GVariant passed as argument to @closure</doc>
5640           <type name="GLib.Variant" c:type="GVariant*"/>
5641         </parameter>
5642       </parameters>
5643     </function>
5644     <function name="test_date_in_gvalue"
5645               c:identifier="regress_test_date_in_gvalue">
5646       <return-value transfer-ownership="full">
5647         <type name="GObject.Value" c:type="GValue*"/>
5648       </return-value>
5649     </function>
5650     <function name="test_def_error_quark"
5651               c:identifier="regress_test_def_error_quark">
5652       <return-value transfer-ownership="none">
5653         <type name="GLib.Quark" c:type="GQuark"/>
5654       </return-value>
5655     </function>
5656     <function name="test_double" c:identifier="regress_test_double">
5657       <return-value transfer-ownership="none">
5658         <type name="gdouble" c:type="gdouble"/>
5659       </return-value>
5660       <parameters>
5661         <parameter name="in" transfer-ownership="none">
5662           <type name="gdouble" c:type="gdouble"/>
5663         </parameter>
5664       </parameters>
5665     </function>
5666     <function name="test_enum_param"
5667               c:identifier="regress_test_enum_param"
5668               moved-to="TestEnum.param">
5669       <return-value transfer-ownership="none">
5670         <type name="utf8" c:type="const gchar*"/>
5671       </return-value>
5672       <parameters>
5673         <parameter name="e" transfer-ownership="none">
5674           <type name="TestEnum" c:type="RegressTestEnum"/>
5675         </parameter>
5676       </parameters>
5677     </function>
5678     <function name="test_error_quark"
5679               c:identifier="regress_test_error_quark"
5680               moved-to="TestError.quark">
5681       <return-value transfer-ownership="none">
5682         <type name="GLib.Quark" c:type="GQuark"/>
5683       </return-value>
5684     </function>
5685     <function name="test_filename_return"
5686               c:identifier="regress_test_filename_return">
5687       <return-value transfer-ownership="full">
5688         <doc xml:space="preserve">list of strings</doc>
5689         <type name="GLib.SList" c:type="GSList*">
5690           <type name="filename"/>
5691         </type>
5692       </return-value>
5693     </function>
5694     <function name="test_float" c:identifier="regress_test_float">
5695       <return-value transfer-ownership="none">
5696         <type name="gfloat" c:type="gfloat"/>
5697       </return-value>
5698       <parameters>
5699         <parameter name="in" transfer-ownership="none">
5700           <type name="gfloat" c:type="gfloat"/>
5701         </parameter>
5702       </parameters>
5703     </function>
5704     <function name="test_garray_container_return"
5705               c:identifier="regress_test_garray_container_return">
5706       <return-value transfer-ownership="container">
5707         <array name="GLib.PtrArray" c:type="GPtrArray*">
5708           <type name="utf8"/>
5709         </array>
5710       </return-value>
5711     </function>
5712     <function name="test_garray_full_return"
5713               c:identifier="regress_test_garray_full_return">
5714       <return-value transfer-ownership="full">
5715         <array name="GLib.PtrArray" c:type="GPtrArray*">
5716           <type name="utf8"/>
5717         </array>
5718       </return-value>
5719     </function>
5720     <function name="test_gerror_callback"
5721               c:identifier="regress_test_gerror_callback">
5722       <return-value transfer-ownership="none">
5723         <type name="none" c:type="void"/>
5724       </return-value>
5725       <parameters>
5726         <parameter name="callback" transfer-ownership="none" scope="call">
5727           <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
5728         </parameter>
5729       </parameters>
5730     </function>
5731     <function name="test_ghash_container_return"
5732               c:identifier="regress_test_ghash_container_return">
5733       <return-value transfer-ownership="container">
5734         <type name="GLib.HashTable" c:type="GHashTable*">
5735           <type name="utf8"/>
5736           <type name="utf8"/>
5737         </type>
5738       </return-value>
5739     </function>
5740     <function name="test_ghash_everything_return"
5741               c:identifier="regress_test_ghash_everything_return">
5742       <return-value transfer-ownership="full">
5743         <type name="GLib.HashTable" c:type="GHashTable*">
5744           <type name="utf8"/>
5745           <type name="utf8"/>
5746         </type>
5747       </return-value>
5748     </function>
5749     <function name="test_ghash_gvalue_in"
5750               c:identifier="regress_test_ghash_gvalue_in">
5751       <return-value transfer-ownership="none">
5752         <type name="none" c:type="void"/>
5753       </return-value>
5754       <parameters>
5755         <parameter name="hash" transfer-ownership="none">
5756           <doc xml:space="preserve">the hash table returned by
5757 regress_test_ghash_gvalue_return().</doc>
5758           <type name="GLib.HashTable" c:type="GHashTable*">
5759             <type name="utf8"/>
5760             <type name="GObject.Value"/>
5761           </type>
5762         </parameter>
5763       </parameters>
5764     </function>
5765     <function name="test_ghash_gvalue_return"
5766               c:identifier="regress_test_ghash_gvalue_return">
5767       <return-value transfer-ownership="none">
5768         <type name="GLib.HashTable" c:type="GHashTable*">
5769           <type name="utf8"/>
5770           <type name="GObject.Value"/>
5771         </type>
5772       </return-value>
5773     </function>
5774     <function name="test_ghash_nested_everything_return"
5775               c:identifier="regress_test_ghash_nested_everything_return">
5776       <doc xml:space="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
5777       <return-value transfer-ownership="full">
5778         <type name="GLib.HashTable" c:type="GHashTable*">
5779           <type name="utf8"/>
5780           <type name="GLib.HashTable">
5781             <type name="utf8"/>
5782             <type name="utf8"/>
5783           </type>
5784         </type>
5785       </return-value>
5786     </function>
5787     <function name="test_ghash_nested_everything_return2"
5788               c:identifier="regress_test_ghash_nested_everything_return2">
5789       <doc xml:space="preserve">Another way of specifying nested parameterized types: using the
5790 element-type annotation.</doc>
5791       <return-value transfer-ownership="full">
5792         <type name="GLib.HashTable" c:type="GHashTable*">
5793           <type name="utf8"/>
5794           <type name="GLib.HashTable">
5795             <type name="utf8"/>
5796             <type name="utf8"/>
5797           </type>
5798         </type>
5799       </return-value>
5800     </function>
5801     <function name="test_ghash_nothing_in"
5802               c:identifier="regress_test_ghash_nothing_in">
5803       <return-value transfer-ownership="none">
5804         <type name="none" c:type="void"/>
5805       </return-value>
5806       <parameters>
5807         <parameter name="in" transfer-ownership="none">
5808           <type name="GLib.HashTable" c:type="const GHashTable*">
5809             <type name="utf8"/>
5810             <type name="utf8"/>
5811           </type>
5812         </parameter>
5813       </parameters>
5814     </function>
5815     <function name="test_ghash_nothing_in2"
5816               c:identifier="regress_test_ghash_nothing_in2">
5817       <return-value transfer-ownership="none">
5818         <type name="none" c:type="void"/>
5819       </return-value>
5820       <parameters>
5821         <parameter name="in" transfer-ownership="none">
5822           <type name="GLib.HashTable" c:type="GHashTable*">
5823             <type name="utf8"/>
5824             <type name="utf8"/>
5825           </type>
5826         </parameter>
5827       </parameters>
5828     </function>
5829     <function name="test_ghash_nothing_return"
5830               c:identifier="regress_test_ghash_nothing_return">
5831       <return-value transfer-ownership="none">
5832         <type name="GLib.HashTable" c:type="const GHashTable*">
5833           <type name="utf8"/>
5834           <type name="utf8"/>
5835         </type>
5836       </return-value>
5837     </function>
5838     <function name="test_ghash_nothing_return2"
5839               c:identifier="regress_test_ghash_nothing_return2">
5840       <return-value transfer-ownership="none">
5841         <type name="GLib.HashTable" c:type="GHashTable*">
5842           <type name="utf8"/>
5843           <type name="utf8"/>
5844         </type>
5845       </return-value>
5846     </function>
5847     <function name="test_ghash_null_in"
5848               c:identifier="regress_test_ghash_null_in">
5849       <return-value transfer-ownership="none">
5850         <type name="none" c:type="void"/>
5851       </return-value>
5852       <parameters>
5853         <parameter name="in"
5854                    transfer-ownership="none"
5855                    nullable="1"
5856                    allow-none="1">
5857           <type name="GLib.HashTable" c:type="const GHashTable*">
5858             <type name="utf8"/>
5859             <type name="utf8"/>
5860           </type>
5861         </parameter>
5862       </parameters>
5863     </function>
5864     <function name="test_ghash_null_out"
5865               c:identifier="regress_test_ghash_null_out">
5866       <return-value transfer-ownership="none">
5867         <type name="none" c:type="void"/>
5868       </return-value>
5869       <parameters>
5870         <parameter name="out"
5871                    direction="out"
5872                    caller-allocates="0"
5873                    transfer-ownership="full"
5874                    optional="1"
5875                    allow-none="1">
5876           <type name="GLib.HashTable" c:type="const GHashTable**">
5877             <type name="utf8"/>
5878             <type name="utf8"/>
5879           </type>
5880         </parameter>
5881       </parameters>
5882     </function>
5883     <function name="test_ghash_null_return"
5884               c:identifier="regress_test_ghash_null_return">
5885       <return-value transfer-ownership="none" nullable="1">
5886         <type name="GLib.HashTable" c:type="const GHashTable*">
5887           <type name="utf8"/>
5888           <type name="utf8"/>
5889         </type>
5890       </return-value>
5891     </function>
5892     <function name="test_glist_container_return"
5893               c:identifier="regress_test_glist_container_return">
5894       <return-value transfer-ownership="container">
5895         <type name="GLib.List" c:type="GList*">
5896           <type name="utf8"/>
5897         </type>
5898       </return-value>
5899     </function>
5900     <function name="test_glist_everything_return"
5901               c:identifier="regress_test_glist_everything_return">
5902       <return-value transfer-ownership="full">
5903         <type name="GLib.List" c:type="GList*">
5904           <type name="utf8"/>
5905         </type>
5906       </return-value>
5907     </function>
5908     <function name="test_glist_gtype_container_in"
5909               c:identifier="regress_test_glist_gtype_container_in">
5910       <return-value transfer-ownership="none">
5911         <type name="none" c:type="void"/>
5912       </return-value>
5913       <parameters>
5914         <parameter name="in" transfer-ownership="container">
5915           <type name="GLib.List" c:type="GList*">
5916             <type name="GType"/>
5917           </type>
5918         </parameter>
5919       </parameters>
5920     </function>
5921     <function name="test_glist_nothing_in"
5922               c:identifier="regress_test_glist_nothing_in">
5923       <return-value transfer-ownership="none">
5924         <type name="none" c:type="void"/>
5925       </return-value>
5926       <parameters>
5927         <parameter name="in" transfer-ownership="none">
5928           <type name="GLib.List" c:type="const GList*">
5929             <type name="utf8"/>
5930           </type>
5931         </parameter>
5932       </parameters>
5933     </function>
5934     <function name="test_glist_nothing_in2"
5935               c:identifier="regress_test_glist_nothing_in2">
5936       <return-value transfer-ownership="none">
5937         <type name="none" c:type="void"/>
5938       </return-value>
5939       <parameters>
5940         <parameter name="in" transfer-ownership="none">
5941           <type name="GLib.List" c:type="GList*">
5942             <type name="utf8"/>
5943           </type>
5944         </parameter>
5945       </parameters>
5946     </function>
5947     <function name="test_glist_nothing_return"
5948               c:identifier="regress_test_glist_nothing_return">
5949       <return-value transfer-ownership="none">
5950         <type name="GLib.List" c:type="const GList*">
5951           <type name="utf8"/>
5952         </type>
5953       </return-value>
5954     </function>
5955     <function name="test_glist_nothing_return2"
5956               c:identifier="regress_test_glist_nothing_return2">
5957       <return-value transfer-ownership="none">
5958         <type name="GLib.List" c:type="GList*">
5959           <type name="utf8"/>
5960         </type>
5961       </return-value>
5962     </function>
5963     <function name="test_glist_null_in"
5964               c:identifier="regress_test_glist_null_in">
5965       <return-value transfer-ownership="none">
5966         <type name="none" c:type="void"/>
5967       </return-value>
5968       <parameters>
5969         <parameter name="in"
5970                    transfer-ownership="none"
5971                    nullable="1"
5972                    allow-none="1">
5973           <type name="GLib.SList" c:type="GSList*">
5974             <type name="utf8"/>
5975           </type>
5976         </parameter>
5977       </parameters>
5978     </function>
5979     <function name="test_glist_null_out"
5980               c:identifier="regress_test_glist_null_out">
5981       <return-value transfer-ownership="none">
5982         <type name="none" c:type="void"/>
5983       </return-value>
5984       <parameters>
5985         <parameter name="out_list"
5986                    direction="out"
5987                    caller-allocates="0"
5988                    transfer-ownership="full"
5989                    optional="1"
5990                    allow-none="1">
5991           <type name="GLib.SList" c:type="GSList**">
5992             <type name="utf8"/>
5993           </type>
5994         </parameter>
5995       </parameters>
5996     </function>
5997     <function name="test_gslist_container_return"
5998               c:identifier="regress_test_gslist_container_return">
5999       <return-value transfer-ownership="container">
6000         <type name="GLib.SList" c:type="GSList*">
6001           <type name="utf8"/>
6002         </type>
6003       </return-value>
6004     </function>
6005     <function name="test_gslist_everything_return"
6006               c:identifier="regress_test_gslist_everything_return">
6007       <return-value transfer-ownership="full">
6008         <type name="GLib.SList" c:type="GSList*">
6009           <type name="utf8"/>
6010         </type>
6011       </return-value>
6012     </function>
6013     <function name="test_gslist_nothing_in"
6014               c:identifier="regress_test_gslist_nothing_in">
6015       <return-value transfer-ownership="none">
6016         <type name="none" c:type="void"/>
6017       </return-value>
6018       <parameters>
6019         <parameter name="in" transfer-ownership="none">
6020           <type name="GLib.SList" c:type="const GSList*">
6021             <type name="utf8"/>
6022           </type>
6023         </parameter>
6024       </parameters>
6025     </function>
6026     <function name="test_gslist_nothing_in2"
6027               c:identifier="regress_test_gslist_nothing_in2">
6028       <return-value transfer-ownership="none">
6029         <type name="none" c:type="void"/>
6030       </return-value>
6031       <parameters>
6032         <parameter name="in" transfer-ownership="none">
6033           <type name="GLib.SList" c:type="GSList*">
6034             <type name="utf8"/>
6035           </type>
6036         </parameter>
6037       </parameters>
6038     </function>
6039     <function name="test_gslist_nothing_return"
6040               c:identifier="regress_test_gslist_nothing_return">
6041       <return-value transfer-ownership="none">
6042         <type name="GLib.SList" c:type="const GSList*">
6043           <type name="utf8"/>
6044         </type>
6045       </return-value>
6046     </function>
6047     <function name="test_gslist_nothing_return2"
6048               c:identifier="regress_test_gslist_nothing_return2">
6049       <return-value transfer-ownership="none">
6050         <type name="GLib.SList" c:type="GSList*">
6051           <type name="utf8"/>
6052         </type>
6053       </return-value>
6054     </function>
6055     <function name="test_gslist_null_in"
6056               c:identifier="regress_test_gslist_null_in">
6057       <return-value transfer-ownership="none">
6058         <type name="none" c:type="void"/>
6059       </return-value>
6060       <parameters>
6061         <parameter name="in"
6062                    transfer-ownership="none"
6063                    nullable="1"
6064                    allow-none="1">
6065           <type name="GLib.SList" c:type="GSList*">
6066             <type name="utf8"/>
6067           </type>
6068         </parameter>
6069       </parameters>
6070     </function>
6071     <function name="test_gslist_null_out"
6072               c:identifier="regress_test_gslist_null_out">
6073       <return-value transfer-ownership="none">
6074         <type name="none" c:type="void"/>
6075       </return-value>
6076       <parameters>
6077         <parameter name="out_list"
6078                    direction="out"
6079                    caller-allocates="0"
6080                    transfer-ownership="full"
6081                    optional="1"
6082                    allow-none="1">
6083           <type name="GLib.SList" c:type="GSList**">
6084             <type name="utf8"/>
6085           </type>
6086         </parameter>
6087       </parameters>
6088     </function>
6089     <function name="test_gtype" c:identifier="regress_test_gtype">
6090       <return-value transfer-ownership="none">
6091         <type name="GType" c:type="GType"/>
6092       </return-value>
6093       <parameters>
6094         <parameter name="in" transfer-ownership="none">
6095           <type name="GType" c:type="GType"/>
6096         </parameter>
6097       </parameters>
6098     </function>
6099     <function name="test_gvariant_as" c:identifier="regress_test_gvariant_as">
6100       <return-value transfer-ownership="none">
6101         <doc xml:space="preserve">New variant</doc>
6102         <type name="GLib.Variant" c:type="GVariant*"/>
6103       </return-value>
6104     </function>
6105     <function name="test_gvariant_asv"
6106               c:identifier="regress_test_gvariant_asv">
6107       <return-value transfer-ownership="none">
6108         <doc xml:space="preserve">New variant</doc>
6109         <type name="GLib.Variant" c:type="GVariant*"/>
6110       </return-value>
6111     </function>
6112     <function name="test_gvariant_i" c:identifier="regress_test_gvariant_i">
6113       <return-value transfer-ownership="none">
6114         <doc xml:space="preserve">New variant</doc>
6115         <type name="GLib.Variant" c:type="GVariant*"/>
6116       </return-value>
6117     </function>
6118     <function name="test_gvariant_s" c:identifier="regress_test_gvariant_s">
6119       <return-value transfer-ownership="none">
6120         <doc xml:space="preserve">New variant</doc>
6121         <type name="GLib.Variant" c:type="GVariant*"/>
6122       </return-value>
6123     </function>
6124     <function name="test_gvariant_v" c:identifier="regress_test_gvariant_v">
6125       <return-value transfer-ownership="none">
6126         <doc xml:space="preserve">New variant</doc>
6127         <type name="GLib.Variant" c:type="GVariant*"/>
6128       </return-value>
6129     </function>
6130     <function name="test_hash_table_callback"
6131               c:identifier="regress_test_hash_table_callback">
6132       <return-value transfer-ownership="none">
6133         <type name="none" c:type="void"/>
6134       </return-value>
6135       <parameters>
6136         <parameter name="data" transfer-ownership="none">
6137           <doc xml:space="preserve">GHashTable that gets passed to callback</doc>
6138           <type name="GLib.HashTable" c:type="GHashTable*">
6139             <type name="utf8"/>
6140             <type name="gint"/>
6141           </type>
6142         </parameter>
6143         <parameter name="callback" transfer-ownership="none" scope="call">
6144           <type name="TestCallbackHashtable"
6145                 c:type="RegressTestCallbackHashtable"/>
6146         </parameter>
6147       </parameters>
6148     </function>
6149     <function name="test_int" c:identifier="regress_test_int">
6150       <return-value transfer-ownership="none">
6151         <type name="gint" c:type="gint"/>
6152       </return-value>
6153       <parameters>
6154         <parameter name="in" transfer-ownership="none">
6155           <type name="gint" c:type="gint"/>
6156         </parameter>
6157       </parameters>
6158     </function>
6159     <function name="test_int16" c:identifier="regress_test_int16">
6160       <return-value transfer-ownership="none">
6161         <type name="gint16" c:type="gint16"/>
6162       </return-value>
6163       <parameters>
6164         <parameter name="in" transfer-ownership="none">
6165           <type name="gint16" c:type="gint16"/>
6166         </parameter>
6167       </parameters>
6168     </function>
6169     <function name="test_int32" c:identifier="regress_test_int32">
6170       <return-value transfer-ownership="none">
6171         <type name="gint32" c:type="gint32"/>
6172       </return-value>
6173       <parameters>
6174         <parameter name="in" transfer-ownership="none">
6175           <type name="gint32" c:type="gint32"/>
6176         </parameter>
6177       </parameters>
6178     </function>
6179     <function name="test_int64" c:identifier="regress_test_int64">
6180       <return-value transfer-ownership="none">
6181         <type name="gint64" c:type="gint64"/>
6182       </return-value>
6183       <parameters>
6184         <parameter name="in" transfer-ownership="none">
6185           <type name="gint64" c:type="gint64"/>
6186         </parameter>
6187       </parameters>
6188     </function>
6189     <function name="test_int8" c:identifier="regress_test_int8">
6190       <return-value transfer-ownership="none">
6191         <type name="gint8" c:type="gint8"/>
6192       </return-value>
6193       <parameters>
6194         <parameter name="in" transfer-ownership="none">
6195           <type name="gint8" c:type="gint8"/>
6196         </parameter>
6197       </parameters>
6198     </function>
6199     <function name="test_int_out_utf8"
6200               c:identifier="regress_test_int_out_utf8">
6201       <return-value transfer-ownership="none">
6202         <type name="none" c:type="void"/>
6203       </return-value>
6204       <parameters>
6205         <parameter name="length"
6206                    direction="out"
6207                    caller-allocates="0"
6208                    transfer-ownership="full">
6209           <type name="gint" c:type="int*"/>
6210         </parameter>
6211         <parameter name="in" transfer-ownership="none">
6212           <type name="utf8" c:type="const char*"/>
6213         </parameter>
6214       </parameters>
6215     </function>
6216     <function name="test_int_value_arg"
6217               c:identifier="regress_test_int_value_arg">
6218       <return-value transfer-ownership="none">
6219         <type name="gint" c:type="int"/>
6220       </return-value>
6221       <parameters>
6222         <parameter name="v" transfer-ownership="none">
6223           <type name="GObject.Value" c:type="const GValue*"/>
6224         </parameter>
6225       </parameters>
6226     </function>
6227     <function name="test_long" c:identifier="regress_test_long">
6228       <return-value transfer-ownership="none">
6229         <type name="glong" c:type="glong"/>
6230       </return-value>
6231       <parameters>
6232         <parameter name="in" transfer-ownership="none">
6233           <type name="glong" c:type="glong"/>
6234         </parameter>
6235       </parameters>
6236     </function>
6237     <function name="test_multi_callback"
6238               c:identifier="regress_test_multi_callback">
6239       <return-value transfer-ownership="none">
6240         <type name="gint" c:type="int"/>
6241       </return-value>
6242       <parameters>
6243         <parameter name="callback"
6244                    transfer-ownership="none"
6245                    nullable="1"
6246                    allow-none="1"
6247                    scope="call">
6248           <type name="TestCallback" c:type="RegressTestCallback"/>
6249         </parameter>
6250       </parameters>
6251     </function>
6252     <function name="test_multi_double_args"
6253               c:identifier="regress_test_multi_double_args">
6254       <return-value transfer-ownership="none">
6255         <type name="none" c:type="void"/>
6256       </return-value>
6257       <parameters>
6258         <parameter name="in" transfer-ownership="none">
6259           <type name="gdouble" c:type="gdouble"/>
6260         </parameter>
6261         <parameter name="one"
6262                    direction="out"
6263                    caller-allocates="0"
6264                    transfer-ownership="full">
6265           <type name="gdouble" c:type="gdouble*"/>
6266         </parameter>
6267         <parameter name="two"
6268                    direction="out"
6269                    caller-allocates="0"
6270                    transfer-ownership="full">
6271           <type name="gdouble" c:type="gdouble*"/>
6272         </parameter>
6273       </parameters>
6274     </function>
6275     <function name="test_multiline_doc_comments"
6276               c:identifier="regress_test_multiline_doc_comments">
6277       <doc xml:space="preserve">This is a function.
6278
6279 It has multiple lines in the documentation.
6280
6281 The sky is blue.
6282
6283 You will give me your credit card number.</doc>
6284       <return-value transfer-ownership="none">
6285         <type name="none" c:type="void"/>
6286       </return-value>
6287     </function>
6288     <function name="test_nested_parameter"
6289               c:identifier="regress_test_nested_parameter">
6290       <doc xml:space="preserve">&lt;informaltable&gt;
6291   &lt;tgroup cols="3"&gt;
6292     &lt;thead&gt;
6293       &lt;row&gt;
6294         &lt;entry&gt;Syntax&lt;/entry&gt;
6295         &lt;entry&gt;Explanation&lt;/entry&gt;
6296         &lt;entry&gt;Examples&lt;/entry&gt;
6297       &lt;/row&gt;
6298     &lt;/thead&gt;
6299     &lt;tbody&gt;
6300       &lt;row&gt;
6301         &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
6302         &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
6303                0 and 255 or percentages&lt;/entry&gt;
6304         &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
6305 rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
6306       &lt;/row&gt;
6307       &lt;row&gt;
6308         &lt;entry&gt;rgba(@r, @g, @b, @a)&lt;/entry&gt;
6309         &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
6310                @a is a floating point number between 0 and 1&lt;/entry&gt;
6311         &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
6312       &lt;/row&gt;
6313    &lt;/tbody&gt;
6314  &lt;/tgroup&gt;
6315 &lt;/informaltable&gt;
6316
6317 What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
6318       <return-value transfer-ownership="none">
6319         <type name="none" c:type="void"/>
6320       </return-value>
6321       <parameters>
6322         <parameter name="a" transfer-ownership="none">
6323           <doc xml:space="preserve">An integer</doc>
6324           <type name="gint" c:type="int"/>
6325         </parameter>
6326       </parameters>
6327     </function>
6328     <function name="test_noptr_callback"
6329               c:identifier="regress_test_noptr_callback">
6330       <return-value transfer-ownership="none">
6331         <type name="none" c:type="void"/>
6332       </return-value>
6333       <parameters>
6334         <parameter name="callback"
6335                    transfer-ownership="none"
6336                    nullable="1"
6337                    allow-none="1"
6338                    scope="call">
6339           <type name="TestNoPtrCallback" c:type="RegressTestNoPtrCallback"/>
6340         </parameter>
6341       </parameters>
6342     </function>
6343     <function name="test_null_gerror_callback"
6344               c:identifier="regress_test_null_gerror_callback">
6345       <return-value transfer-ownership="none">
6346         <type name="none" c:type="void"/>
6347       </return-value>
6348       <parameters>
6349         <parameter name="callback" transfer-ownership="none" scope="call">
6350           <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
6351         </parameter>
6352       </parameters>
6353     </function>
6354     <function name="test_owned_gerror_callback"
6355               c:identifier="regress_test_owned_gerror_callback">
6356       <return-value transfer-ownership="none">
6357         <type name="none" c:type="void"/>
6358       </return-value>
6359       <parameters>
6360         <parameter name="callback" transfer-ownership="none" scope="call">
6361           <type name="TestCallbackOwnedGError"
6362                 c:type="RegressTestCallbackOwnedGError"/>
6363         </parameter>
6364       </parameters>
6365     </function>
6366     <function name="test_return_allow_none"
6367               c:identifier="regress_test_return_allow_none">
6368       <return-value transfer-ownership="full" nullable="1">
6369         <type name="utf8" c:type="char*"/>
6370       </return-value>
6371     </function>
6372     <function name="test_return_nullable"
6373               c:identifier="regress_test_return_nullable">
6374       <return-value transfer-ownership="full" nullable="1">
6375         <type name="utf8" c:type="char*"/>
6376       </return-value>
6377     </function>
6378     <function name="test_short" c:identifier="regress_test_short">
6379       <return-value transfer-ownership="none">
6380         <type name="gshort" c:type="gshort"/>
6381       </return-value>
6382       <parameters>
6383         <parameter name="in" transfer-ownership="none">
6384           <type name="gshort" c:type="gshort"/>
6385         </parameter>
6386       </parameters>
6387     </function>
6388     <function name="test_simple_boxed_a_const_return"
6389               c:identifier="regress_test_simple_boxed_a_const_return"
6390               moved-to="TestSimpleBoxedA.const_return">
6391       <return-value transfer-ownership="none">
6392         <type name="TestSimpleBoxedA" c:type="const RegressTestSimpleBoxedA*"/>
6393       </return-value>
6394     </function>
6395     <function name="test_simple_callback"
6396               c:identifier="regress_test_simple_callback">
6397       <return-value transfer-ownership="none">
6398         <type name="none" c:type="void"/>
6399       </return-value>
6400       <parameters>
6401         <parameter name="callback"
6402                    transfer-ownership="none"
6403                    nullable="1"
6404                    allow-none="1"
6405                    scope="call">
6406           <type name="TestSimpleCallback" c:type="RegressTestSimpleCallback"/>
6407         </parameter>
6408       </parameters>
6409     </function>
6410     <function name="test_size" c:identifier="regress_test_size">
6411       <return-value transfer-ownership="none">
6412         <type name="gsize" c:type="gsize"/>
6413       </return-value>
6414       <parameters>
6415         <parameter name="in" transfer-ownership="none">
6416           <type name="gsize" c:type="gsize"/>
6417         </parameter>
6418       </parameters>
6419     </function>
6420     <function name="test_skip_unannotated_callback"
6421               c:identifier="regress_test_skip_unannotated_callback"
6422               introspectable="0">
6423       <doc xml:space="preserve">Should not emit a warning:
6424 https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
6425       <return-value transfer-ownership="none">
6426         <type name="none" c:type="void"/>
6427       </return-value>
6428       <parameters>
6429         <parameter name="callback" transfer-ownership="none">
6430           <doc xml:space="preserve">No annotation here</doc>
6431           <type name="TestCallback" c:type="RegressTestCallback"/>
6432         </parameter>
6433       </parameters>
6434     </function>
6435     <function name="test_ssize" c:identifier="regress_test_ssize">
6436       <return-value transfer-ownership="none">
6437         <type name="gssize" c:type="gssize"/>
6438       </return-value>
6439       <parameters>
6440         <parameter name="in" transfer-ownership="none">
6441           <type name="gssize" c:type="gssize"/>
6442         </parameter>
6443       </parameters>
6444     </function>
6445     <function name="test_struct_a_parse"
6446               c:identifier="regress_test_struct_a_parse"
6447               moved-to="TestStructA.parse">
6448       <return-value transfer-ownership="none">
6449         <type name="none" c:type="void"/>
6450       </return-value>
6451       <parameters>
6452         <parameter name="a_out"
6453                    direction="out"
6454                    caller-allocates="1"
6455                    transfer-ownership="none">
6456           <doc xml:space="preserve">the structure that is to be filled</doc>
6457           <type name="TestStructA" c:type="RegressTestStructA*"/>
6458         </parameter>
6459         <parameter name="string" transfer-ownership="none">
6460           <doc xml:space="preserve">ignored</doc>
6461           <type name="utf8" c:type="const gchar*"/>
6462         </parameter>
6463       </parameters>
6464     </function>
6465     <function name="test_strv_in" c:identifier="regress_test_strv_in">
6466       <return-value transfer-ownership="none">
6467         <type name="gboolean" c:type="gboolean"/>
6468       </return-value>
6469       <parameters>
6470         <parameter name="arr" transfer-ownership="none">
6471           <array c:type="char**">
6472             <type name="utf8" c:type="char*"/>
6473           </array>
6474         </parameter>
6475       </parameters>
6476     </function>
6477     <function name="test_strv_in_gvalue"
6478               c:identifier="regress_test_strv_in_gvalue">
6479       <return-value transfer-ownership="full">
6480         <type name="GObject.Value" c:type="GValue*"/>
6481       </return-value>
6482     </function>
6483     <function name="test_strv_out" c:identifier="regress_test_strv_out">
6484       <return-value transfer-ownership="full">
6485         <array c:type="char**">
6486           <type name="utf8"/>
6487         </array>
6488       </return-value>
6489     </function>
6490     <function name="test_strv_out_c" c:identifier="regress_test_strv_out_c">
6491       <return-value transfer-ownership="none">
6492         <array c:type="const char* const*">
6493           <type name="utf8"/>
6494         </array>
6495       </return-value>
6496     </function>
6497     <function name="test_strv_out_container"
6498               c:identifier="regress_test_strv_out_container">
6499       <return-value transfer-ownership="container">
6500         <array c:type="char**">
6501           <type name="utf8"/>
6502         </array>
6503       </return-value>
6504     </function>
6505     <function name="test_strv_outarg" c:identifier="regress_test_strv_outarg">
6506       <return-value transfer-ownership="none">
6507         <type name="none" c:type="void"/>
6508       </return-value>
6509       <parameters>
6510         <parameter name="retp"
6511                    direction="out"
6512                    caller-allocates="0"
6513                    transfer-ownership="container">
6514           <array c:type="char***">
6515             <type name="utf8" c:type="char**"/>
6516           </array>
6517         </parameter>
6518       </parameters>
6519     </function>
6520     <function name="test_timet" c:identifier="regress_test_timet">
6521       <return-value transfer-ownership="none">
6522         <type name="glong" c:type="time_t"/>
6523       </return-value>
6524       <parameters>
6525         <parameter name="in" transfer-ownership="none">
6526           <type name="glong" c:type="time_t"/>
6527         </parameter>
6528       </parameters>
6529     </function>
6530     <function name="test_torture_signature_0"
6531               c:identifier="regress_test_torture_signature_0">
6532       <return-value transfer-ownership="none">
6533         <type name="none" c:type="void"/>
6534       </return-value>
6535       <parameters>
6536         <parameter name="x" transfer-ownership="none">
6537           <type name="gint" c:type="int"/>
6538         </parameter>
6539         <parameter name="y"
6540                    direction="out"
6541                    caller-allocates="0"
6542                    transfer-ownership="full">
6543           <type name="gdouble" c:type="double*"/>
6544         </parameter>
6545         <parameter name="z"
6546                    direction="out"
6547                    caller-allocates="0"
6548                    transfer-ownership="full">
6549           <type name="gint" c:type="int*"/>
6550         </parameter>
6551         <parameter name="foo" transfer-ownership="none">
6552           <type name="utf8" c:type="const char*"/>
6553         </parameter>
6554         <parameter name="q"
6555                    direction="out"
6556                    caller-allocates="0"
6557                    transfer-ownership="full">
6558           <type name="gint" c:type="int*"/>
6559         </parameter>
6560         <parameter name="m" transfer-ownership="none">
6561           <type name="guint" c:type="guint"/>
6562         </parameter>
6563       </parameters>
6564     </function>
6565     <function name="test_torture_signature_1"
6566               c:identifier="regress_test_torture_signature_1"
6567               throws="1">
6568       <doc xml:space="preserve">This function throws an error if m is odd.</doc>
6569       <return-value transfer-ownership="none">
6570         <type name="gboolean" c:type="gboolean"/>
6571       </return-value>
6572       <parameters>
6573         <parameter name="x" transfer-ownership="none">
6574           <type name="gint" c:type="int"/>
6575         </parameter>
6576         <parameter name="y"
6577                    direction="out"
6578                    caller-allocates="0"
6579                    transfer-ownership="full">
6580           <type name="gdouble" c:type="double*"/>
6581         </parameter>
6582         <parameter name="z"
6583                    direction="out"
6584                    caller-allocates="0"
6585                    transfer-ownership="full">
6586           <type name="gint" c:type="int*"/>
6587         </parameter>
6588         <parameter name="foo" transfer-ownership="none">
6589           <type name="utf8" c:type="const char*"/>
6590         </parameter>
6591         <parameter name="q"
6592                    direction="out"
6593                    caller-allocates="0"
6594                    transfer-ownership="full">
6595           <type name="gint" c:type="int*"/>
6596         </parameter>
6597         <parameter name="m" transfer-ownership="none">
6598           <type name="guint" c:type="guint"/>
6599         </parameter>
6600       </parameters>
6601     </function>
6602     <function name="test_torture_signature_2"
6603               c:identifier="regress_test_torture_signature_2">
6604       <return-value transfer-ownership="none">
6605         <type name="none" c:type="void"/>
6606       </return-value>
6607       <parameters>
6608         <parameter name="x" transfer-ownership="none">
6609           <type name="gint" c:type="int"/>
6610         </parameter>
6611         <parameter name="callback"
6612                    transfer-ownership="none"
6613                    scope="notified"
6614                    closure="2"
6615                    destroy="3">
6616           <type name="TestCallbackUserData"
6617                 c:type="RegressTestCallbackUserData"/>
6618         </parameter>
6619         <parameter name="user_data"
6620                    transfer-ownership="none"
6621                    nullable="1"
6622                    allow-none="1">
6623           <type name="gpointer" c:type="gpointer"/>
6624         </parameter>
6625         <parameter name="notify" transfer-ownership="none" scope="async">
6626           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
6627         </parameter>
6628         <parameter name="y"
6629                    direction="out"
6630                    caller-allocates="0"
6631                    transfer-ownership="full">
6632           <type name="gdouble" c:type="double*"/>
6633         </parameter>
6634         <parameter name="z"
6635                    direction="out"
6636                    caller-allocates="0"
6637                    transfer-ownership="full">
6638           <type name="gint" c:type="int*"/>
6639         </parameter>
6640         <parameter name="foo" transfer-ownership="none">
6641           <type name="utf8" c:type="const char*"/>
6642         </parameter>
6643         <parameter name="q"
6644                    direction="out"
6645                    caller-allocates="0"
6646                    transfer-ownership="full">
6647           <type name="gint" c:type="int*"/>
6648         </parameter>
6649         <parameter name="m" transfer-ownership="none">
6650           <type name="guint" c:type="guint"/>
6651         </parameter>
6652       </parameters>
6653     </function>
6654     <function name="test_uint" c:identifier="regress_test_uint">
6655       <return-value transfer-ownership="none">
6656         <type name="guint" c:type="guint"/>
6657       </return-value>
6658       <parameters>
6659         <parameter name="in" transfer-ownership="none">
6660           <type name="guint" c:type="guint"/>
6661         </parameter>
6662       </parameters>
6663     </function>
6664     <function name="test_uint16" c:identifier="regress_test_uint16">
6665       <return-value transfer-ownership="none">
6666         <type name="guint16" c:type="guint16"/>
6667       </return-value>
6668       <parameters>
6669         <parameter name="in" transfer-ownership="none">
6670           <type name="guint16" c:type="guint16"/>
6671         </parameter>
6672       </parameters>
6673     </function>
6674     <function name="test_uint32" c:identifier="regress_test_uint32">
6675       <return-value transfer-ownership="none">
6676         <type name="guint32" c:type="guint32"/>
6677       </return-value>
6678       <parameters>
6679         <parameter name="in" transfer-ownership="none">
6680           <type name="guint32" c:type="guint32"/>
6681         </parameter>
6682       </parameters>
6683     </function>
6684     <function name="test_uint64" c:identifier="regress_test_uint64">
6685       <return-value transfer-ownership="none">
6686         <type name="guint64" c:type="guint64"/>
6687       </return-value>
6688       <parameters>
6689         <parameter name="in" transfer-ownership="none">
6690           <type name="guint64" c:type="guint64"/>
6691         </parameter>
6692       </parameters>
6693     </function>
6694     <function name="test_uint8" c:identifier="regress_test_uint8">
6695       <return-value transfer-ownership="none">
6696         <type name="guint8" c:type="guint8"/>
6697       </return-value>
6698       <parameters>
6699         <parameter name="in" transfer-ownership="none">
6700           <type name="guint8" c:type="guint8"/>
6701         </parameter>
6702       </parameters>
6703     </function>
6704     <function name="test_ulong" c:identifier="regress_test_ulong">
6705       <return-value transfer-ownership="none">
6706         <type name="gulong" c:type="gulong"/>
6707       </return-value>
6708       <parameters>
6709         <parameter name="in" transfer-ownership="none">
6710           <type name="gulong" c:type="gulong"/>
6711         </parameter>
6712       </parameters>
6713     </function>
6714     <function name="test_unconventional_error_quark"
6715               c:identifier="regress_test_unconventional_error_quark"
6716               moved-to="TestOtherError.quark">
6717       <return-value transfer-ownership="none">
6718         <type name="GLib.Quark" c:type="GQuark"/>
6719       </return-value>
6720     </function>
6721     <function name="test_unichar" c:identifier="regress_test_unichar">
6722       <return-value transfer-ownership="none">
6723         <type name="gunichar" c:type="gunichar"/>
6724       </return-value>
6725       <parameters>
6726         <parameter name="in" transfer-ownership="none">
6727           <type name="gunichar" c:type="gunichar"/>
6728         </parameter>
6729       </parameters>
6730     </function>
6731     <function name="test_unsigned_enum_param"
6732               c:identifier="regress_test_unsigned_enum_param">
6733       <return-value transfer-ownership="none">
6734         <type name="utf8" c:type="const gchar*"/>
6735       </return-value>
6736       <parameters>
6737         <parameter name="e" transfer-ownership="none">
6738           <type name="TestEnumUnsigned" c:type="RegressTestEnumUnsigned"/>
6739         </parameter>
6740       </parameters>
6741     </function>
6742     <function name="test_ushort" c:identifier="regress_test_ushort">
6743       <return-value transfer-ownership="none">
6744         <type name="gushort" c:type="gushort"/>
6745       </return-value>
6746       <parameters>
6747         <parameter name="in" transfer-ownership="none">
6748           <type name="gushort" c:type="gushort"/>
6749         </parameter>
6750       </parameters>
6751     </function>
6752     <function name="test_utf8_const_in"
6753               c:identifier="regress_test_utf8_const_in">
6754       <return-value transfer-ownership="none">
6755         <type name="none" c:type="void"/>
6756       </return-value>
6757       <parameters>
6758         <parameter name="in" transfer-ownership="none">
6759           <type name="utf8" c:type="const char*"/>
6760         </parameter>
6761       </parameters>
6762     </function>
6763     <function name="test_utf8_const_return"
6764               c:identifier="regress_test_utf8_const_return">
6765       <return-value transfer-ownership="none">
6766         <doc xml:space="preserve">UTF-8 string</doc>
6767         <type name="utf8" c:type="const char*"/>
6768       </return-value>
6769     </function>
6770     <function name="test_utf8_inout" c:identifier="regress_test_utf8_inout">
6771       <return-value transfer-ownership="none">
6772         <type name="none" c:type="void"/>
6773       </return-value>
6774       <parameters>
6775         <parameter name="inout"
6776                    direction="inout"
6777                    caller-allocates="0"
6778                    transfer-ownership="full">
6779           <type name="utf8" c:type="char**"/>
6780         </parameter>
6781       </parameters>
6782     </function>
6783     <function name="test_utf8_nonconst_return"
6784               c:identifier="regress_test_utf8_nonconst_return">
6785       <return-value transfer-ownership="full">
6786         <doc xml:space="preserve">UTF-8 string</doc>
6787         <type name="utf8" c:type="char*"/>
6788       </return-value>
6789     </function>
6790     <function name="test_utf8_null_in"
6791               c:identifier="regress_test_utf8_null_in">
6792       <return-value transfer-ownership="none">
6793         <type name="none" c:type="void"/>
6794       </return-value>
6795       <parameters>
6796         <parameter name="in"
6797                    transfer-ownership="none"
6798                    nullable="1"
6799                    allow-none="1">
6800           <type name="utf8" c:type="char*"/>
6801         </parameter>
6802       </parameters>
6803     </function>
6804     <function name="test_utf8_null_out"
6805               c:identifier="regress_test_utf8_null_out">
6806       <return-value transfer-ownership="none">
6807         <type name="none" c:type="void"/>
6808       </return-value>
6809       <parameters>
6810         <parameter name="char_out"
6811                    direction="out"
6812                    caller-allocates="0"
6813                    transfer-ownership="full"
6814                    optional="1"
6815                    allow-none="1">
6816           <type name="utf8" c:type="char**"/>
6817         </parameter>
6818       </parameters>
6819     </function>
6820     <function name="test_utf8_out" c:identifier="regress_test_utf8_out">
6821       <return-value transfer-ownership="none">
6822         <type name="none" c:type="void"/>
6823       </return-value>
6824       <parameters>
6825         <parameter name="out"
6826                    direction="out"
6827                    caller-allocates="0"
6828                    transfer-ownership="full">
6829           <type name="utf8" c:type="char**"/>
6830         </parameter>
6831       </parameters>
6832     </function>
6833     <function name="test_utf8_out_nonconst_return"
6834               c:identifier="regress_test_utf8_out_nonconst_return">
6835       <return-value transfer-ownership="full">
6836         <doc xml:space="preserve">a copy of "first"</doc>
6837         <type name="utf8" c:type="char*"/>
6838       </return-value>
6839       <parameters>
6840         <parameter name="out"
6841                    direction="out"
6842                    caller-allocates="0"
6843                    transfer-ownership="full">
6844           <doc xml:space="preserve">a copy of "second"</doc>
6845           <type name="utf8" c:type="char**"/>
6846         </parameter>
6847       </parameters>
6848     </function>
6849     <function name="test_utf8_out_out"
6850               c:identifier="regress_test_utf8_out_out">
6851       <return-value transfer-ownership="none">
6852         <type name="none" c:type="void"/>
6853       </return-value>
6854       <parameters>
6855         <parameter name="out0"
6856                    direction="out"
6857                    caller-allocates="0"
6858                    transfer-ownership="full">
6859           <doc xml:space="preserve">a copy of "first"</doc>
6860           <type name="utf8" c:type="char**"/>
6861         </parameter>
6862         <parameter name="out1"
6863                    direction="out"
6864                    caller-allocates="0"
6865                    transfer-ownership="full">
6866           <doc xml:space="preserve">a copy of "second"</doc>
6867           <type name="utf8" c:type="char**"/>
6868         </parameter>
6869       </parameters>
6870     </function>
6871     <function name="test_value_get_fundamental_object"
6872               c:identifier="regress_test_value_get_fundamental_object"
6873               introspectable="0">
6874       <return-value>
6875         <type name="TestFundamentalObject"
6876               c:type="RegressTestFundamentalObject*"/>
6877       </return-value>
6878       <parameters>
6879         <parameter name="value" transfer-ownership="none">
6880           <type name="GObject.Value" c:type="const GValue*"/>
6881         </parameter>
6882       </parameters>
6883     </function>
6884     <function name="test_value_return"
6885               c:identifier="regress_test_value_return">
6886       <return-value transfer-ownership="none">
6887         <doc xml:space="preserve">the int wrapped in a GValue.</doc>
6888         <type name="GObject.Value" c:type="const GValue*"/>
6889       </return-value>
6890       <parameters>
6891         <parameter name="i" transfer-ownership="none">
6892           <doc xml:space="preserve">an int</doc>
6893           <type name="gint" c:type="int"/>
6894         </parameter>
6895       </parameters>
6896     </function>
6897     <function name="test_value_set_fundamental_object"
6898               c:identifier="regress_test_value_set_fundamental_object"
6899               introspectable="0">
6900       <return-value transfer-ownership="none">
6901         <type name="none" c:type="void"/>
6902       </return-value>
6903       <parameters>
6904         <parameter name="value" transfer-ownership="none">
6905           <type name="GObject.Value" c:type="GValue*"/>
6906         </parameter>
6907         <parameter name="fundamental_object" transfer-ownership="none">
6908           <type name="TestFundamentalObject"
6909                 c:type="RegressTestFundamentalObject*"/>
6910         </parameter>
6911       </parameters>
6912     </function>
6913     <function name="test_versioning"
6914               c:identifier="regress_test_versioning"
6915               version="1.32.1"
6916               deprecated="1"
6917               deprecated-version="1.33.3"
6918               stability="Unstable">
6919       <doc-version xml:space="preserve">Actually, this function was introduced earlier
6920   than this, but it didn't do anything before this version.</doc-version>
6921       <doc-deprecated xml:space="preserve">This function has been deprecated,
6922   because it sucks. Use foobar instead.</doc-deprecated>
6923       <doc-stability xml:space="preserve">Maybe someday we will find the time
6924   to stabilize this function. Who knows?</doc-stability>
6925       <return-value transfer-ownership="none">
6926         <type name="none" c:type="void"/>
6927       </return-value>
6928     </function>
6929   </namespace>
6930 </repository>