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