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