Merge lp:~ubuntu-branches/ubuntu/natty/gobject-introspection/natty-201101212212 into lp:ubuntu/natty/gobject-introspection

Proposed by James Westby
Status: Work in progress
Proposed branch: lp:~ubuntu-branches/ubuntu/natty/gobject-introspection/natty-201101212212
Merge into: lp:ubuntu/natty/gobject-introspection
Diff against target: 8790 lines (+2886/-5641) (has conflicts)
12 files modified
.pc/.version (+0/-1)
.pc/0001-Preserve-the-c-type-of-array-elements.patch/giscanner/maintransformer.py (+0/-1130)
.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Annotation-1.0-expected.gir (+0/-814)
.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Foo-1.0-expected.gir (+0/-1170)
.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Regress-1.0-expected.gir (+0/-2497)
.pc/applied-patches (+0/-1)
debian/changelog (+2/-2)
giscanner/maintransformer.py (+5/-0)
giscanner/scannerlexer.c (+2853/-0)
tests/scanner/Annotation-1.0-expected.gir (+7/-7)
tests/scanner/Foo-1.0-expected.gir (+2/-2)
tests/scanner/Regress-1.0-expected.gir (+17/-17)
Text conflict in giscanner/maintransformer.py
To merge this branch: bzr merge lp:~ubuntu-branches/ubuntu/natty/gobject-introspection/natty-201101212212
Reviewer Review Type Date Requested Status
Ubuntu branches Pending
Review via email: mp+47123@code.launchpad.net

Description of the change

The package history in the archive and the history in the bzr branch differ. As the archive is authoritative the history of lp:ubuntu/natty/gobject-introspection now reflects that and the old bzr branch has been pushed to lp:~ubuntu-branches/ubuntu/natty/gobject-introspection/natty-201101212212. A merge should be performed if necessary.

To post a comment you must log in.

Unmerged revisions

39. By Ken VanDine

releasing version 0.10.1-1ubuntu1

38. By Ken VanDine

releasing version 0.10.1-1ubuntu2

37. By Ken VanDine

releasing version 0.10.1-1ubuntu1

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed directory '.pc'
2=== removed file '.pc/.version'
3--- .pc/.version 2011-01-21 11:20:57 +0000
4+++ .pc/.version 1970-01-01 00:00:00 +0000
5@@ -1,1 +0,0 @@
6-2
7
8=== removed directory '.pc/0001-Preserve-the-c-type-of-array-elements.patch'
9=== removed directory '.pc/0001-Preserve-the-c-type-of-array-elements.patch/giscanner'
10=== removed file '.pc/0001-Preserve-the-c-type-of-array-elements.patch/giscanner/maintransformer.py'
11--- .pc/0001-Preserve-the-c-type-of-array-elements.patch/giscanner/maintransformer.py 2011-01-21 11:20:57 +0000
12+++ .pc/0001-Preserve-the-c-type-of-array-elements.patch/giscanner/maintransformer.py 1970-01-01 00:00:00 +0000
13@@ -1,1130 +0,0 @@
14-# -*- Mode: Python -*-
15-# Copyright (C) 2010 Red Hat, Inc.
16-#
17-# This library is free software; you can redistribute it and/or
18-# modify it under the terms of the GNU Lesser General Public
19-# License as published by the Free Software Foundation; either
20-# version 2 of the License, or (at your option) any later version.
21-#
22-# This library is distributed in the hope that it will be useful,
23-# but WITHOUT ANY WARRANTY; without even the implied warranty of
24-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25-# Lesser General Public License for more details.
26-#
27-# You should have received a copy of the GNU Lesser General Public
28-# License along with this library; if not, write to the
29-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
30-# Boston, MA 02111-1307, USA.
31-#
32-
33-import re
34-
35-from . import ast
36-from . import message
37-from .annotationparser import (TAG_VFUNC, TAG_SINCE, TAG_DEPRECATED, TAG_RETURNS,
38- TAG_ATTRIBUTES, TAG_RENAME_TO, TAG_TYPE,
39- TAG_UNREF_FUNC, TAG_REF_FUNC, TAG_SET_VALUE_FUNC,
40- TAG_GET_VALUE_FUNC)
41-from .annotationparser import (OPT_ALLOW_NONE, OPT_ARRAY, OPT_ATTRIBUTE,
42- OPT_ELEMENT_TYPE, OPT_IN, OPT_INOUT,
43- OPT_INOUT_ALT, OPT_OUT, OPT_SCOPE,
44- OPT_OUT_CALLER_ALLOCATES, OPT_OUT_CALLEE_ALLOCATES,
45- OPT_TYPE, OPT_CLOSURE, OPT_DESTROY, OPT_TRANSFER, OPT_SKIP,
46- OPT_FOREIGN, OPT_ARRAY_FIXED_SIZE,
47- OPT_ARRAY_LENGTH, OPT_ARRAY_ZERO_TERMINATED)
48-from .annotationparser import AnnotationParser
49-from .transformer import TransformerException
50-from .utils import to_underscores, to_underscores_noprefix
51-
52-class MainTransformer(object):
53-
54- def __init__(self, transformer, blocks):
55- self._transformer = transformer
56- self._blocks = blocks
57- self._namespace = transformer.namespace
58- self._uscore_type_names = {}
59-
60- # Public API
61-
62- def transform(self):
63- contents = list(self._namespace.itervalues())
64- if len(contents) == 0:
65- message.fatal("""Namespace is empty; likely causes are:
66-* Not including .h files to be scanned
67-* Broken --identifier-prefix
68-""")
69-
70- # Some initial namespace surgery
71- self._namespace.walk(self._pass_fixup_hidden_fields)
72-
73- # We have a rough tree which should have most of of the types
74- # we know about. Let's attempt closure; walk over all of the
75- # Type() types and see if they match up with something.
76- self._namespace.walk(self._pass_type_resolution)
77-
78- # Read in annotations needed early
79- self._namespace.walk(self._pass_read_annotations_early)
80-
81- # Determine some default values for transfer etc.
82- # based on the current tree.
83- self._namespace.walk(self._pass_callable_defaults)
84-
85- # Read in most annotations now.
86- self._namespace.walk(self._pass_read_annotations)
87-
88- # Now that we've possibly seen more types from annotations,
89- # do another type resolution pass.
90- self._namespace.walk(self._pass_type_resolution)
91-
92- # Generate a reverse mapping "bar_baz" -> BarBaz
93- for node in self._namespace.itervalues():
94- if isinstance(node, ast.Registered) and node.get_type is not None:
95- self._uscore_type_names[node.c_symbol_prefix] = node
96- elif isinstance(node, (ast.Record, ast.Union)):
97- uscored = to_underscores_noprefix(node.name).lower()
98- self._uscore_type_names[uscored] = node
99-
100- for node in list(self._namespace.itervalues()):
101- if isinstance(node, ast.Function):
102- # Discover which toplevel functions are actually methods
103- self._pair_function(node)
104- if isinstance(node, (ast.Class, ast.Interface)):
105- self._pair_class_virtuals(node)
106-
107- # Some annotations need to be post function pairing
108- self._namespace.walk(self._pass_read_annotations2)
109-
110- # Another type resolution pass after we've parsed virtuals, etc.
111- self._namespace.walk(self._pass_type_resolution)
112-
113- self._namespace.walk(self._pass3)
114-
115- # TODO - merge into pass3
116- self._pair_quarks_with_enums()
117-
118- # Private
119-
120- def _pass_fixup_hidden_fields(self, node, chain):
121- """Hide all callbacks starting with _; the typical
122-usage is void (*_gtk_reserved1)(void);"""
123- if not isinstance(node, (ast.Class, ast.Interface,
124- ast.Record, ast.Union)):
125- return True
126- for field in node.fields:
127- if field is None:
128- continue
129- if (field.name.startswith('_')
130- and field.anonymous_node is not None
131- and isinstance(field.anonymous_node, ast.Callback)):
132- field.introspectable = False
133- return True
134-
135- def _get_validate_parameter_name(self, parent, param_name, origin):
136- try:
137- param = parent.get_parameter(param_name)
138- except ValueError, e:
139- param = None
140- if param is None:
141- if isinstance(origin, ast.Parameter):
142- origin_name = 'parameter %s' % (origin.argname, )
143- else:
144- origin_name = 'return value'
145- message.log_node(
146- message.FATAL, parent,
147- "can't find parameter %s referenced by %s of %r"
148- % (param_name, origin_name, parent.name))
149-
150- return param.argname
151-
152- def _apply_annotation_rename_to(self, node, chain, block):
153- if not block:
154- return
155- rename_to = block.get(TAG_RENAME_TO)
156- if not rename_to:
157- return
158- rename_to = rename_to.value
159- target = self._namespace.get_by_symbol(rename_to)
160- if not target:
161- message.warn_node(node,
162- "Can't find symbol %r referenced by Rename annotation" % (
163- rename_to, ))
164- elif target.shadowed_by:
165- message.warn_node(node,
166- "Function %r already shadowed by %r, can't overwrite with %r" % (
167- target.symbol,
168- target.shadowed_by,
169- rename_to))
170- elif target.shadows:
171- message.warn_node(node,
172- "Function %r already shadows %r, can't multiply shadow with %r" % (
173- target.symbol,
174- target.shadows,
175- rename_to))
176- else:
177- target.shadowed_by = node.name
178- node.shadows = target.name
179-
180- def _apply_annotations_function(self, node, chain):
181- block = self._blocks.get(node.symbol)
182- self._apply_annotations_callable(node, chain, block)
183-
184- def _pass_read_annotations_early(self, node, chain):
185- if isinstance(node, ast.Record):
186- if node.ctype is not None:
187- block = self._blocks.get(node.ctype)
188- else:
189- block = self._blocks.get(node.c_name)
190- self._apply_annotations_annotated(node, block)
191- return True
192-
193- def _pass_callable_defaults(self, node, chain):
194- if isinstance(node, (ast.Callable, ast.Signal)):
195- for param in node.parameters:
196- if param.transfer is None:
197- param.transfer = self._get_transfer_default(node, param)
198- if node.retval.transfer is None:
199- node.retval.transfer = self._get_transfer_default(node, node.retval)
200- return True
201-
202- def _get_annotation_name(self, node):
203- if isinstance(node, (ast.Class, ast.Interface, ast.Record,
204- ast.Union, ast.Enum, ast.Bitfield,
205- ast.Callback, ast.Alias)):
206- if node.ctype is not None:
207- return node.ctype
208- elif isinstance(node, ast.Registered) and node.gtype_name is not None:
209- return node.gtype_name
210- return node.c_name
211- raise AssertionError("Unhandled node %r" % (node, ))
212-
213- def _get_block(self, node):
214- return self._blocks.get(self._get_annotation_name(node))
215-
216- def _pass_read_annotations(self, node, chain):
217- if not node.namespace:
218- return False
219- if isinstance(node, ast.Alias):
220- self._apply_annotations_alias(node, chain)
221- if isinstance(node, ast.Function):
222- self._apply_annotations_function(node, chain)
223- if isinstance(node, ast.Callback):
224- self._apply_annotations_callable(node, chain, block = self._get_block(node))
225- if isinstance(node, (ast.Class, ast.Interface, ast.Union, ast.Enum,
226- ast.Bitfield, ast.Callback)):
227- self._apply_annotations_annotated(node, self._get_block(node))
228- if isinstance(node, (ast.Class, ast.Interface, ast.Record, ast.Union)):
229- block = self._get_block(node)
230- for field in node.fields:
231- self._apply_annotations_field(node, block, field)
232- if isinstance(node, (ast.Class, ast.Interface)):
233- for prop in node.properties:
234- self._apply_annotations_property(node, prop)
235- for sig in node.signals:
236- self._apply_annotations_signal(node, sig)
237- if isinstance(node, ast.Class):
238- block = self._get_block(node)
239- if block:
240- tag = block.get(TAG_UNREF_FUNC)
241- node.unref_func = tag.value if tag else None
242- tag = block.get(TAG_REF_FUNC)
243- node.ref_func = tag.value if tag else None
244- tag = block.get(TAG_SET_VALUE_FUNC)
245- node.set_value_func = tag.value if tag else None
246- tag = block.get(TAG_GET_VALUE_FUNC)
247- node.get_value_func = tag.value if tag else None
248- return True
249-
250- def _adjust_container_type(self, parent, node, options):
251- has_element_type = OPT_ELEMENT_TYPE in options
252- has_array = OPT_ARRAY in options
253-
254- if has_array:
255- self._apply_annotations_array(parent, node, options)
256- elif has_element_type:
257- self._apply_annotations_element_type(parent, node, options)
258-
259- def _resolve(self, type_str, type_node=None, node=None, parent=None):
260- def grab_one(type_str, resolver, top_combiner, combiner):
261- """Return a complete type, and the trailing string part after it.
262- Use resolver() on each identifier, and combiner() on the parts of
263- each complete type. (top_combiner is used on the top-most type.)"""
264- bits = re.split(r'([,<>])', type_str, 1)
265- first, sep, rest = [bits[0], '', ''] if (len(bits)==1) else bits
266- args = [resolver(first)]
267- if sep == '<':
268- while sep != '>':
269- next, rest = grab_one(rest, resolver, combiner, combiner)
270- args.append(next)
271- sep, rest = rest[0], rest[1:]
272- else:
273- rest = sep + rest
274- return top_combiner(*args), rest
275- def resolver(ident):
276- res = self._transformer.create_type_from_user_string(ident)
277- return res
278- def combiner(base, *rest):
279- if not rest:
280- return base
281- if isinstance(base, ast.List) and len(rest) == 1:
282- return ast.List(base.name, *rest)
283- if isinstance(base, ast.Map) and len(rest) == 2:
284- return ast.Map(*rest)
285- message.warn(
286- "Too many parameters in type specification %r" % (type_str, ))
287- return base
288- def top_combiner(base, *rest):
289- if type_node is not None and isinstance(type_node, ast.Type):
290- base.is_const = type_node.is_const
291- return combiner(base, *rest)
292-
293- result, rest = grab_one(type_str, resolver, top_combiner, combiner)
294- if rest:
295- message.warn("Trailing components in type specification %r" % (
296- type_str, ))
297-
298- if not result.resolved:
299- position = None
300- if parent is not None and isinstance(parent, ast.Function):
301- text = parent.symbol
302- position = self._get_position(parent, node)
303- else:
304- text = type_str
305- message.warn_node(parent, "%s: Unknown type: %r" %
306- (text, result.ctype), positions=position)
307- return result
308-
309- def _get_position(self, func, param):
310- block = self._blocks.get(func.symbol)
311- if block:
312- if isinstance(param, ast.Parameter):
313- tag = block.tags.get(param.argname)
314- elif isinstance(param, ast.Return):
315- tag = block.tags.get(TAG_RETURNS)
316- else:
317- tag = None
318-
319- if tag.position:
320- return tag.position
321-
322- return block.position
323-
324- def _apply_annotations_array(self, parent, node, options):
325- array_opt = options.get(OPT_ARRAY)
326- if array_opt:
327- array_values = array_opt.all()
328- else:
329- array_values = {}
330-
331- element_type = options.get(OPT_ELEMENT_TYPE)
332- if element_type is not None:
333- element_type_node = self._resolve(element_type.one(),
334- node.type, node, parent)
335- elif isinstance(node.type, ast.Array):
336- element_type_node = node.type.element_type
337- else:
338- # We're assuming here that Foo* with an (array) annotation
339- # and no (element-type) means array of Foo
340- element_type_node = node.type.clone()
341- # Explicitly erase ctype since it's no longer valid
342- element_type_node.ctype = None
343-
344- if isinstance(node.type, ast.Array):
345- array_type = node.type.array_type
346- else:
347- array_type = None
348- container_type = ast.Array(array_type, element_type_node,
349- ctype=node.type.ctype,
350- is_const=node.type.is_const)
351- if OPT_ARRAY_ZERO_TERMINATED in array_values:
352- container_type.zeroterminated = array_values.get(
353- OPT_ARRAY_ZERO_TERMINATED) == '1'
354- length = array_values.get(OPT_ARRAY_LENGTH)
355- if length is not None:
356- paramname = self._get_validate_parameter_name(parent, length, node)
357- if paramname:
358- param = parent.get_parameter(paramname)
359- param.direction = node.direction
360- if param.direction == ast.PARAM_DIRECTION_OUT:
361- param.transfer = ast.PARAM_TRANSFER_FULL
362- container_type.length_param_name = param.argname
363- fixed = array_values.get(OPT_ARRAY_FIXED_SIZE)
364- if fixed:
365- try:
366- container_type.size = int(fixed)
367- except ValueError:
368- # Already warned in annotationparser.py
369- return
370- node.type = container_type
371-
372- def _apply_annotations_element_type(self, parent, node, options):
373- element_type_opt = options.get(OPT_ELEMENT_TYPE)
374- if element_type_opt is None:
375- message.warn(
376- 'element-type annotation takes at least one option, '
377- 'none given',
378- options.position)
379- return
380-
381- if isinstance(node.type, ast.List):
382- if element_type_opt.length() != 1:
383- message.warn(
384- 'element-type annotation for a list must have exactly '
385- 'one option, not %d options' % (element_type_opt.length(), ),
386- options.position)
387- return
388- node.type.element_type = self._resolve(element_type_opt.one(),
389- node.type, node, parent)
390- elif isinstance(node.type, ast.Map):
391- if element_type_opt.length() != 2:
392- message.warn(
393- 'element-type annotation for a hash table must have exactly '
394- 'two options, not %d option(s)' % (element_type_opt.length(), ),
395- options.position)
396- return
397- element_type = element_type_opt.flat()
398- node.type.key_type = self._resolve(element_type[0],
399- node.type, node, parent)
400- node.type.value_type = self._resolve(element_type[1],
401- node.type, node, parent)
402- elif isinstance(node.type, ast.Array):
403- if element_type_opt.length() != 1:
404- message.warn(
405- 'element-type annotation for an array must have exactly '
406- 'one option, not %d options' % (element_type_opt.length(), ),
407- options.position)
408- return
409- node.type.element_type = self._resolve(element_type_opt.one(),
410- node.type, node, parent)
411- else:
412- message.warn_node(parent,
413- "Unknown container %r for element-type annotation" % (node.type, ))
414-
415- def _get_transfer_default_param(self, parent, node):
416- if node.direction in [ast.PARAM_DIRECTION_INOUT,
417- ast.PARAM_DIRECTION_OUT]:
418- if node.caller_allocates:
419- return ast.PARAM_TRANSFER_NONE
420- return ast.PARAM_TRANSFER_FULL
421- return ast.PARAM_TRANSFER_NONE
422-
423- def _get_transfer_default_returntype_basic(self, typeval):
424- if (typeval.is_equiv(ast.BASIC_GIR_TYPES)
425- or typeval.is_const
426- or typeval.is_equiv(ast.TYPE_NONE)):
427- return ast.PARAM_TRANSFER_NONE
428- elif typeval.is_equiv(ast.TYPE_STRING):
429- # Non-const strings default to FULL
430- return ast.PARAM_TRANSFER_FULL
431- elif typeval.target_fundamental:
432- # This looks like just GType right now
433- return None
434- return None
435-
436- def _is_gi_subclass(self, typeval, supercls_type):
437- cls = self._transformer.lookup_typenode(typeval)
438- assert cls, str(typeval)
439- supercls = self._transformer.lookup_typenode(supercls_type)
440- assert supercls
441- if cls is supercls:
442- return True
443- if cls.parent and cls.parent.target_giname != 'GObject.Object':
444- return self._is_gi_subclass(cls.parent, supercls_type)
445- return False
446-
447- def _get_transfer_default_return(self, parent, node):
448- typeval = node.type
449- basic = self._get_transfer_default_returntype_basic(typeval)
450- if basic:
451- return basic
452- if not typeval.target_giname:
453- return None
454- target = self._transformer.lookup_typenode(typeval)
455- if isinstance(target, ast.Alias):
456- return self._get_transfer_default_returntype_basic(target.target)
457- elif (isinstance(target, ast.Boxed)
458- or (isinstance(target, (ast.Record, ast.Union))
459- and (target.gtype_name is not None or target.foreign))):
460- return ast.PARAM_TRANSFER_FULL
461- elif isinstance(target, (ast.Enum, ast.Bitfield)):
462- return ast.PARAM_TRANSFER_NONE
463- # Handle constructors specially here
464- elif isinstance(parent, ast.Function) and parent.is_constructor:
465- if isinstance(target, ast.Class):
466- initially_unowned_type = ast.Type(target_giname='GObject.InitiallyUnowned')
467- initially_unowned = self._transformer.lookup_typenode(initially_unowned_type)
468- if initially_unowned and self._is_gi_subclass(typeval, initially_unowned_type):
469- return ast.PARAM_TRANSFER_NONE
470- else:
471- return ast.PARAM_TRANSFER_FULL
472- elif isinstance(target, (ast.Record, ast.Union)):
473- return ast.PARAM_TRANSFER_FULL
474- else:
475- raise AssertionError("Invalid constructor")
476- elif isinstance(target, (ast.Class, ast.Record, ast.Union)):
477- # Explicitly no default for these
478- return None
479- else:
480- return None
481-
482- def _get_transfer_default(self, parent, node):
483- if node.type.is_equiv(ast.TYPE_NONE) or isinstance(node.type, ast.Varargs):
484- return ast.PARAM_TRANSFER_NONE
485- elif isinstance(node, ast.Parameter):
486- return self._get_transfer_default_param(parent, node)
487- elif isinstance(node, ast.Return):
488- return self._get_transfer_default_return(parent, node)
489- elif isinstance(node, ast.Field):
490- return ast.PARAM_TRANSFER_NONE
491- elif isinstance(node, ast.Property):
492- return ast.PARAM_TRANSFER_NONE
493- else:
494- raise AssertionError(node)
495-
496- def _apply_annotations_param_ret_common(self, parent, node, tag):
497- options = getattr(tag, 'options', {})
498-
499- param_type = options.get(OPT_TYPE)
500- if param_type:
501- node.type = self._resolve(param_type.one(),
502- node.type, node, parent)
503-
504- caller_allocates = False
505- annotated_direction = None
506- if (OPT_INOUT in options or
507- OPT_INOUT_ALT in options):
508- annotated_direction = ast.PARAM_DIRECTION_INOUT
509- elif OPT_OUT in options:
510- subtype = options[OPT_OUT]
511- if subtype is not None:
512- subtype = subtype.one()
513- annotated_direction = ast.PARAM_DIRECTION_OUT
514- if subtype in (None, ''):
515- if node.type.target_giname and node.type.ctype:
516- target = self._transformer.lookup_giname(node.type.target_giname)
517- has_double_indirection = '**' in node.type.ctype
518- is_structure_or_union = isinstance(target, (ast.Record, ast.Union))
519- caller_allocates = (not has_double_indirection and is_structure_or_union)
520- else:
521- caller_allocates = False
522- elif subtype == OPT_OUT_CALLER_ALLOCATES:
523- caller_allocates = True
524- elif subtype == OPT_OUT_CALLEE_ALLOCATES:
525- caller_allocates = False
526- elif OPT_IN in options:
527- annotated_direction = ast.PARAM_DIRECTION_IN
528-
529- if (annotated_direction is not None) and (annotated_direction != node.direction):
530- node.direction = annotated_direction
531- node.caller_allocates = caller_allocates
532- # Also reset the transfer default if we're toggling direction
533- node.transfer = self._get_transfer_default(parent, node)
534-
535- transfer_tag = options.get(OPT_TRANSFER)
536- if transfer_tag and transfer_tag.length() == 1:
537- node.transfer = transfer_tag.one()
538-
539- self._adjust_container_type(parent, node, options)
540-
541- if (OPT_ALLOW_NONE in options or
542- node.type.target_giname == 'Gio.Cancellable'):
543- node.allow_none = True
544-
545- if tag is not None and tag.comment is not None:
546- node.doc = tag.comment
547-
548- if options:
549- for attribute in options.getall(OPT_ATTRIBUTE):
550- node.attributes.append(attribute.flat())
551-
552- def _apply_annotations_annotated(self, node, block):
553- if block is None:
554- return
555-
556- node.doc = block.comment
557-
558- since_tag = block.get(TAG_SINCE)
559- if since_tag is not None:
560- node.version = since_tag.value
561-
562- deprecated_tag = block.get(TAG_DEPRECATED)
563- if deprecated_tag is not None:
564- value = deprecated_tag.value
565- if ': ' in value:
566- version, desc = value.split(': ')
567- else:
568- desc = value
569- version = None
570- node.deprecated = desc
571- if version is not None:
572- node.deprecated_version = version
573-
574- annos_tag = block.get(TAG_ATTRIBUTES)
575- if annos_tag is not None:
576- options = AnnotationParser.parse_options(annos_tag, annos_tag.value)
577- for key, value in options.iteritems():
578- if value:
579- node.attributes.append((key, value.one()))
580-
581- if OPT_SKIP in block.options:
582- node.skip = True
583-
584- if OPT_FOREIGN in block.options:
585- node.foreign = True
586-
587- def _apply_annotations_alias(self, node, chain):
588- block = self._get_block(node)
589- self._apply_annotations_annotated(node, block)
590-
591- def _apply_annotations_param(self, parent, param, tag):
592- if tag:
593- options = tag.options
594- else:
595- options = {}
596- if isinstance(parent, (ast.Function, ast.VFunction)):
597- scope = options.get(OPT_SCOPE)
598- if scope and scope.length() == 1:
599- param.scope = scope.one()
600- param.transfer = ast.PARAM_TRANSFER_NONE
601-
602- destroy = options.get(OPT_DESTROY)
603- if destroy:
604- param.destroy_name = self._get_validate_parameter_name(parent,
605- destroy.one(),
606- param)
607- if param.destroy_name is not None:
608- param.scope = ast.PARAM_SCOPE_NOTIFIED
609- destroy_param = parent.get_parameter(param.destroy_name)
610- # This is technically bogus; we're setting the scope on the destroy
611- # itself. But this helps avoid tripping a warning from finaltransformer,
612- # since we don't have a way right now to flag this callback a destroy.
613- destroy_param.scope = ast.PARAM_SCOPE_NOTIFIED
614- closure = options.get(OPT_CLOSURE)
615- if closure and closure.length() == 1:
616- param.closure_name = self._get_validate_parameter_name(parent,
617- closure.one(),
618- param)
619- elif isinstance(parent, ast.Callback):
620- if OPT_CLOSURE in options:
621- # For callbacks, (closure) appears without an
622- # argument, and tags a parameter that is a closure. We
623- # represent it (weirdly) in the gir and typelib by
624- # setting param.closure_name to itself.
625- param.closure_name = param.argname
626-
627- self._apply_annotations_param_ret_common(parent, param, tag)
628-
629- def _apply_annotations_return(self, parent, return_, block):
630- if block:
631- tag = block.get(TAG_RETURNS)
632- else:
633- tag = None
634- self._apply_annotations_param_ret_common(parent, return_, tag)
635-
636- def _apply_annotations_params(self, parent, params, block):
637- allparams = []
638- if parent.instance_parameter:
639- allparams.append(parent.instance_parameter.argname)
640- for param in params:
641- if block:
642- tag = block.get(param.argname)
643- else:
644- tag = None
645- self._apply_annotations_param(parent, param, tag)
646- allparams.append(param.argname)
647-
648- if not block:
649- return
650- docparams = block.params[:]
651- for doc_name in docparams:
652- if doc_name in allparams:
653- continue
654- # Skip varargs, see #629759
655- if doc_name.lower() in ['...', 'varargs', TAG_RETURNS]:
656- continue
657- if len(allparams) == 0:
658- text = ''
659- elif len(allparams) == 1:
660- text = ', should be %r' % (allparams[0], )
661- else:
662- text = ', should be one of %s' % (
663- ', '.join(repr(p) for p in allparams), )
664-
665- tag = block.get(doc_name)
666- message.warn(
667- '%s: unknown parameter %r in documentation comment%s' % (
668- block.name, doc_name, text),
669- tag.position)
670-
671- def _apply_annotations_callable(self, node, chain, block):
672- self._apply_annotations_annotated(node, block)
673- self._apply_annotations_params(node, node.parameters, block)
674- self._apply_annotations_return(node, node.retval, block)
675-
676- def _check_arg_annotations(self, parent, params, block):
677- if block is None:
678- return
679- for tag in block.tags.keys():
680- if tag == TAG_RETURNS:
681- continue
682- for param in params:
683- if param.argname == tag:
684- break
685- else:
686- message.warn(
687- "Annotation for '%s' refers to unknown argument '%s'"
688- % (parent.name, tag))
689-
690- def _apply_annotations_field(self, parent, block, field):
691- if not block:
692- return
693- tag = block.get(field.name)
694- if not tag:
695- return
696- t = tag.options.get(OPT_TYPE)
697- if not t:
698- return
699- field.type = self._transformer.create_type_from_user_string(t.one())
700-
701- def _apply_annotations_property(self, parent, prop):
702- prefix = self._get_annotation_name(parent)
703- block = self._blocks.get('%s:%s' % (prefix, prop.name))
704- self._apply_annotations_annotated(prop, block)
705- if not block:
706- return
707- transfer_tag = block.get(OPT_TRANSFER)
708- if transfer_tag is not None:
709- prop.transfer = transfer_tag.value
710- else:
711- prop.transfer = self._get_transfer_default(parent, prop)
712- type_tag = block.get(TAG_TYPE)
713- if type_tag:
714- prop.type = self._resolve(type_tag.value, prop.type, prop, parent)
715-
716- def _apply_annotations_signal(self, parent, signal):
717- prefix = self._get_annotation_name(parent)
718- block = self._blocks.get('%s::%s' % (prefix, signal.name))
719- self._apply_annotations_annotated(signal, block)
720- # We're only attempting to name the signal parameters if
721- # the number of parameter tags (@foo) is the same or greater
722- # than the number of signal parameters
723- if block and len(block.tags) > len(signal.parameters):
724- names = block.tags.items()
725- # Resolve real parameter names early, so that in later
726- # phase we can refer to them while resolving annotations.
727- for i, param in enumerate(signal.parameters):
728- param.argname, tag = names[i+1]
729- else:
730- names = []
731- for i, param in enumerate(signal.parameters):
732- if names:
733- name, tag = names[i+1]
734- options = getattr(tag, 'options', {})
735- param_type = options.get(OPT_TYPE)
736- if param_type:
737- param.type = self._resolve(param_type.one(), param.type,
738- param, parent)
739- else:
740- tag = None
741- self._apply_annotations_param(signal, param, tag)
742- self._apply_annotations_return(signal, signal.retval, block)
743-
744- def _pass_read_annotations2(self, node, chain):
745- if isinstance(node, ast.Function):
746- self._apply_annotations2_function(node, chain)
747- return True
748-
749- def _apply_annotations2_function(self, node, chain):
750- block = self._blocks.get(node.symbol)
751-
752- self._apply_annotation_rename_to(node, chain, block)
753-
754- # Handle virtual invokers
755- parent = chain[-1] if chain else None
756- if not (block and parent):
757- return
758- virtual = block.get(TAG_VFUNC)
759- if not virtual:
760- return
761- invoker_name = virtual.value
762- matched = False
763- for vfunc in parent.virtual_methods:
764- if vfunc.name == invoker_name:
765- matched = True
766- vfunc.invoker = node.name
767- # Also merge in annotations
768- self._apply_annotations_callable(vfunc, [parent], block)
769- break
770- if not matched:
771- message.warn_node(node,
772- "Virtual slot %r not found for %r annotation" % (invoker_name, TAG_VFUNC))
773-
774- def _resolve_and_filter_type_list(self, typelist):
775- """Given a list of Type instances, return a new list of types with
776-the ones that failed to resolve removed."""
777- # Create a copy we'll modify
778- new_typelist = list(typelist)
779- for typeval in typelist:
780- resolved = self._transformer.resolve_type(typeval)
781- if not resolved:
782- new_typelist.remove(typeval)
783- return new_typelist
784-
785- def _pass_type_resolution(self, node, chain):
786- if isinstance(node, ast.Alias):
787- self._transformer.resolve_type(node.target)
788- if isinstance(node, ast.Callable):
789- for parameter in node.parameters:
790- self._transformer.resolve_type(parameter.type)
791- self._transformer.resolve_type(node.retval.type)
792- if isinstance(node, ast.Constant):
793- self._transformer.resolve_type(node.value_type)
794- if isinstance(node, (ast.Class, ast.Interface, ast.Record, ast.Union)):
795- for field in node.fields:
796- if field.anonymous_node:
797- pass
798- else:
799- self._transformer.resolve_type(field.type)
800- if isinstance(node, (ast.Class, ast.Interface)):
801- resolved_parent = None
802- for parent in node.parent_chain:
803- try:
804- self._transformer.resolve_type(parent)
805- except ValueError, e:
806- continue
807- target = self._transformer.lookup_typenode(parent)
808- if target:
809- node.parent = parent
810- break
811- else:
812- if isinstance(node, ast.Interface) or not node.fundamental:
813- node.parent = ast.Type(target_giname='GObject.Object')
814- else:
815- node.parent = None
816- for prop in node.properties:
817- self._transformer.resolve_type(prop.type)
818- for sig in node.signals:
819- for param in sig.parameters:
820- self._transformer.resolve_type(param.type)
821- if isinstance(node, ast.Class):
822- node.interfaces = self._resolve_and_filter_type_list(node.interfaces)
823- if isinstance(node, ast.Interface):
824- node.prerequisites = self._resolve_and_filter_type_list(node.prerequisites)
825- return True
826-
827- def _pair_quarks_with_enums(self):
828- # self._uscore_type_names is an authoritative mapping of types
829- # to underscored versions, since it is based on get_type() methods;
830- # but only covers enums that are registered as GObject enums.
831- # Create a fallback mapping based on all known enums in this module.
832- uscore_enums = {}
833- for enum in self._namespace.itervalues():
834- if not isinstance(enum, ast.Enum):
835- continue
836- type_name = enum.ctype
837- uscored = to_underscores(type_name).lower()
838-
839- uscore_enums[uscored] = enum
840-
841- try:
842- no_uscore_prefixed = self._transformer.strip_identifier(type_name)
843- except TransformerException, e:
844- message.warn(e)
845- no_uscore_prefixed = None
846-
847- if no_uscore_prefixed not in uscore_enums:
848- uscore_enums[no_uscore_prefixed] = enum
849-
850- for node in self._namespace.itervalues():
851- if not isinstance(node, ast.Function):
852- continue
853- if node.retval.type.target_giname != 'GLib.Quark':
854- continue
855- short = node.symbol[:-len('_quark')]
856- if short == "g_io_error":
857- # Special case; GIOError was already taken forcing GIOErrorEnum
858- assert self._namespace.name == 'Gio'
859- enum = self._namespace.get('IOErrorEnum')
860- else:
861- enum = self._uscore_type_names.get(short)
862- if enum is None:
863- enum = uscore_enums.get(short)
864- if enum is not None:
865- enum.error_quark = node.symbol
866- else:
867- message.warn_node(node,
868- """%s: Couldn't find corresponding enumeration""" % (node.symbol, ))
869-
870- def _split_uscored_by_type(self, uscored):
871- """'uscored' should be an un-prefixed uscore string. This
872-function searches through the namespace for the longest type which
873-prefixes uscored, and returns (type, suffix). Example, assuming
874-namespace Gtk, type is TextBuffer:
875-
876-_split_uscored_by_type(text_buffer_try_new) -> (ast.Class(TextBuffer), 'try_new')"""
877- node = None
878- count = 0
879- prev_split_count = -1
880- while True:
881- components = uscored.rsplit('_', count)
882- if len(components) == prev_split_count:
883- return None
884- prev_split_count = len(components)
885- type_string = components[0]
886- node = self._uscore_type_names.get(type_string)
887- if node:
888- return (node, '_'.join(components[1:]))
889- count += 1
890-
891- def _pair_function(self, func):
892- """Check to see whether a toplevel function should be a
893-method or constructor of some type."""
894- if func.symbol.endswith('_get_type') or func.symbol.startswith('_'):
895- return
896- (ns, subsymbol) = self._transformer.split_csymbol(func.symbol)
897- assert ns == self._namespace
898- if self._pair_constructor(func, subsymbol):
899- return
900- elif self._pair_method(func, subsymbol):
901- return
902- elif self._pair_static_method(func, subsymbol):
903- return
904-
905- def _uscored_identifier_for_type(self, typeval):
906- """Given a Type(target_giname='Foo.BarBaz'), return 'bar_baz'."""
907- name = typeval.get_giname()
908- return to_underscores_noprefix(name).lower()
909-
910- def _pair_method(self, func, subsymbol):
911- if not func.parameters:
912- return False
913- first = func.parameters[0]
914- target = self._transformer.lookup_typenode(first.type)
915- if not isinstance(target, (ast.Class, ast.Interface,
916- ast.Record, ast.Union,
917- ast.Boxed)):
918- return False
919- if target.namespace != self._namespace:
920- return False
921-
922- # A quick hack here...in the future we should catch C signature/GI signature
923- # mismatches in a general way in finaltransformer
924- if first.type.ctype is not None and first.type.ctype.count('*') != 1:
925- return False
926-
927- # Here we check both the c_symbol_prefix and (if that fails),
928- # attempt to do a default uscoring of the type. The reason we
929- # look at a default underscore transformation is for
930- # gdk_window_object_get_type(), which says to us that the
931- # prefix is "gdk_window_object", when really it's just
932- # "gdk_window". Possibly need an annotation to override this.
933- prefix_matches = False
934- uscored_prefix = None
935- if hasattr(target, 'c_symbol_prefix') and target.c_symbol_prefix is not None:
936- prefix_matches = subsymbol.startswith(target.c_symbol_prefix)
937- if prefix_matches:
938- uscored_prefix = target.c_symbol_prefix
939- if not prefix_matches:
940- uscored_prefix = self._uscored_identifier_for_type(first.type)
941- if not subsymbol.startswith(uscored_prefix):
942- return False
943- func.instance_parameter = func.parameters.pop(0)
944- subsym_idx = func.symbol.find(subsymbol)
945- self._namespace.float(func)
946- func.name = func.symbol[(subsym_idx + len(uscored_prefix) + 1):]
947- target.methods.append(func)
948- func.is_method = True
949- return True
950-
951- def _pair_static_method(self, func, subsymbol):
952- split = self._split_uscored_by_type(subsymbol)
953- if split is None:
954- return False
955- (node, funcname) = split
956-
957- # We actually should treat static methods on a wider class of objects:
958- # ast.Class, ast.Interface, ast.Record, ast.Union, ast.Boxed
959- # But we stick to ast.Class for now for compatibility with existing code.
960- #
961- # See https://bugzilla.gnome.org/show_bug.cgi?id=572408
962- #
963- if not isinstance(node, ast.Class):
964- return False
965-
966- self._namespace.float(func)
967- func.name = funcname
968- node.static_methods.append(func)
969-
970- def _pair_constructor(self, func, subsymbol):
971- if not (func.symbol.find('_new_') >= 0 or func.symbol.endswith('_new')):
972- return False
973- target = self._transformer.lookup_typenode(func.retval.type)
974- if not (isinstance(target, ast.Class)
975- or (isinstance(target, (ast.Record, ast.Union, ast.Boxed))
976- and (target.get_type is not None or target.foreign))):
977- return False
978-
979- split = self._split_uscored_by_type(subsymbol)
980- if split is None:
981- # TODO - need a e.g. (method) annotation
982- message.warn_node(func,
983- "Can't find matching type for constructor; symbol=%r" % (func.symbol, ))
984- return False
985- (origin_node, funcname) = split
986- # Some sanity checks; only objects and boxeds can have ctors
987- if not (isinstance(origin_node, ast.Class)
988- or (isinstance(origin_node, (ast.Record, ast.Union, ast.Boxed))
989- and (origin_node.get_type is not None or origin_node.foreign))):
990- return False
991- # Verify the namespace - don't want to append to foreign namespaces!
992- if origin_node.namespace != self._namespace:
993- return False
994- # If it takes the object as a first arg, it's not a constructor
995- if len(func.parameters) > 0:
996- first_arg = self._transformer.lookup_typenode(func.parameters[0].type)
997- if (first_arg is not None) and first_arg.gi_name == origin_node.gi_name:
998- return False
999-
1000- if isinstance(target, ast.Class):
1001- parent = origin_node
1002- while parent and (not parent.gi_name == 'GObject.Object'):
1003- if parent == target:
1004- break
1005- if parent.parent:
1006- parent = self._transformer.lookup_typenode(parent.parent)
1007- else:
1008- parent = None
1009- if parent is None or parent.gi_name == 'GObject.Object':
1010- message.warn_node(func,
1011- "Return value is not superclass for constructor; "
1012- "symbol=%r constructed=%r return=%r" % (
1013- func.symbol,
1014- str(origin_node.create_type()),
1015- str(func.retval.type)))
1016- return False
1017- else:
1018- if origin_node != target:
1019- message.warn_node(func,
1020- "Constructor return type mismatch symbol=%r "
1021- "constructed=%r return=%r" % (
1022- func.symbol,
1023- str(origin_node.create_type()),
1024- str(func.retval.type)))
1025- return False
1026- self._namespace.float(func)
1027- func.name = funcname
1028- func.is_constructor = True
1029- origin_node.constructors.append(func)
1030- # Constructors have default return semantics
1031- if not func.retval.transfer:
1032- func.retval.transfer = self._get_transfer_default_return(func, func.retval)
1033- return True
1034-
1035- def _pair_class_virtuals(self, node):
1036- """Look for virtual methods from the class structure."""
1037- if not node.glib_type_struct:
1038- message.warn_node(node,
1039- "Failed to find class structure for %r" % (node.name, ))
1040- return
1041-
1042- node_type = node.create_type()
1043- class_struct = self._transformer.lookup_typenode(node.glib_type_struct)
1044-
1045- # Object class fields are assumed to be read-only
1046- # (see also _introspect_object and transformer.py)
1047- for field in class_struct.fields:
1048- if isinstance(field, ast.Field):
1049- field.writable = False
1050-
1051- for field in class_struct.fields:
1052- if not isinstance(field.anonymous_node, ast.Callback):
1053- continue
1054- callback = field.anonymous_node
1055- # Check the first parameter is the object
1056- if len(callback.parameters) == 0:
1057- continue
1058- firstparam_type = callback.parameters[0].type
1059- if firstparam_type != node_type:
1060- continue
1061- vfunc = ast.VFunction.from_callback(callback)
1062- vfunc.instance_parameter = callback.parameters[0]
1063- vfunc.inherit_file_positions(callback)
1064- node.virtual_methods.append(vfunc)
1065-
1066- # Take the set of virtual methods we found, and try
1067- # to pair up with any matching methods using the
1068- # name+signature.
1069- for vfunc in node.virtual_methods:
1070- for method in node.methods:
1071- if method.name != vfunc.name:
1072- continue
1073- if method.retval.type != vfunc.retval.type:
1074- continue
1075- if len(method.parameters) != len(vfunc.parameters):
1076- continue
1077- for i in xrange(len(method.parameters)):
1078- m_type = method.parameters[i].type
1079- v_type = vfunc.parameters[i].type
1080- if m_type != v_type:
1081- continue
1082- vfunc.invoker = method.name
1083- # Apply any annotations we have from the invoker to
1084- # the vfunc
1085- block = self._blocks.get(method.symbol)
1086- self._apply_annotations_callable(vfunc, [], block)
1087- break
1088-
1089- def _pass3(self, node, chain):
1090- """Pass 3 is after we've loaded GType data and performed type
1091- closure."""
1092- if isinstance(node, ast.Callable):
1093- self._pass3_callable_callbacks(node)
1094- self._pass3_callable_throws(node)
1095- return True
1096-
1097- def _pass3_callable_callbacks(self, node):
1098- """Check to see if we have anything that looks like a
1099- callback+user_data+GDestroyNotify set."""
1100-
1101- params = node.parameters
1102-
1103- # First, do defaults for well-known callback types
1104- for i, param in enumerate(params):
1105- argnode = self._transformer.lookup_typenode(param.type)
1106- if isinstance(argnode, ast.Callback):
1107- if param.type.target_giname in ('Gio.AsyncReadyCallback',
1108- 'GLib.DestroyNotify'):
1109- param.scope = ast.PARAM_SCOPE_ASYNC
1110- param.transfer = ast.PARAM_TRANSFER_NONE
1111-
1112- callback_param = None
1113- for i, param in enumerate(params):
1114- argnode = self._transformer.lookup_typenode(param.type)
1115- is_destroynotify = False
1116- if isinstance(argnode, ast.Callback):
1117- if param.type.target_giname == 'GLib.DestroyNotify':
1118- is_destroynotify = True
1119- else:
1120- callback_param = param
1121- continue
1122- if callback_param is None:
1123- continue
1124- if is_destroynotify:
1125- callback_param.destroy_name = param.argname
1126- callback_param.scope = ast.PARAM_SCOPE_NOTIFIED
1127- callback_param.transfer = ast.PARAM_TRANSFER_NONE
1128- elif (param.type.is_equiv(ast.TYPE_ANY) and
1129- param.argname is not None and
1130- param.argname.endswith('data')):
1131- callback_param.closure_name = param.argname
1132-
1133- def _pass3_callable_throws(self, node):
1134- """Check to see if we have anything that looks like a
1135- callback+user_data+GDestroyNotify set."""
1136- if not node.parameters:
1137- return
1138- last_param = node.parameters[-1]
1139- # Checking type.name=='GLib.Error' generates false positives
1140- # on methods that take a 'GError *'
1141- if last_param.type.ctype == 'GError**':
1142- node.parameters.pop()
1143- node.throws = True
1144
1145=== removed directory '.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests'
1146=== removed directory '.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner'
1147=== removed file '.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Annotation-1.0-expected.gir'
1148--- .pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Annotation-1.0-expected.gir 2011-01-21 11:20:57 +0000
1149+++ .pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Annotation-1.0-expected.gir 1970-01-01 00:00:00 +0000
1150@@ -1,814 +0,0 @@
1151-<?xml version="1.0"?>
1152-<!-- This file was automatically generated from C sources - DO NOT EDIT!
1153-To affect the contents of this file, edit the original C definitions,
1154-and/or use gtk-doc annotations. -->
1155-<repository version="1.2"
1156- xmlns="http://www.gtk.org/introspection/core/1.0"
1157- xmlns:c="http://www.gtk.org/introspection/c/1.0"
1158- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
1159- <include name="GLib" version="2.0"/>
1160- <include name="GObject" version="2.0"/>
1161- <include name="Utility" version="1.0"/>
1162- <package name="gobject-2.0"/>
1163- <c:include name="annotation.h"/>
1164- <namespace name="Annotation"
1165- version="1.0"
1166- shared-library="libannotation.so"
1167- c:identifier-prefixes="Annotation"
1168- c:symbol-prefixes="annotation">
1169- <bitfield name="Bitfield" c:type="AnnotationBitfield">
1170- <member name="foo" value="1" c:identifier="ANN_FLAG_FOO"/>
1171- <member name="bar" value="2" c:identifier="ANN_FLAG_BAR"/>
1172- </bitfield>
1173- <callback name="Callback" c:type="AnnotationCallback">
1174- <doc xml:whitespace="preserve">This is a callback.</doc>
1175- <return-value transfer-ownership="none">
1176- <doc xml:whitespace="preserve">array of ints</doc>
1177- <type name="gint" c:type="gint*"/>
1178- </return-value>
1179- <parameters>
1180- <parameter name="in" transfer-ownership="none">
1181- <doc xml:whitespace="preserve">array of ints</doc>
1182- <type name="gint" c:type="gint*"/>
1183- </parameter>
1184- </parameters>
1185- </callback>
1186- <callback name="ForeachFunc" c:type="AnnotationForeachFunc">
1187- <return-value transfer-ownership="none">
1188- <type name="none" c:type="void"/>
1189- </return-value>
1190- <parameters>
1191- <parameter name="object" transfer-ownership="none">
1192- <type name="Object" c:type="AnnotationObject*"/>
1193- </parameter>
1194- <parameter name="item" transfer-ownership="none">
1195- <type name="utf8" c:type="char*"/>
1196- </parameter>
1197- <parameter name="user_data" transfer-ownership="none" closure="2">
1198- <type name="gpointer" c:type="gpointer"/>
1199- </parameter>
1200- </parameters>
1201- </callback>
1202- <callback name="ListCallback" c:type="AnnotationListCallback">
1203- <doc xml:whitespace="preserve">This is a callback taking a list.</doc>
1204- <return-value transfer-ownership="container">
1205- <doc xml:whitespace="preserve">list of strings</doc>
1206- <type name="GLib.List" c:type="GList*">
1207- <type name="utf8"/>
1208- </type>
1209- </return-value>
1210- <parameters>
1211- <parameter name="in" transfer-ownership="none">
1212- <doc xml:whitespace="preserve">list of strings</doc>
1213- <type name="GLib.List" c:type="GList*">
1214- <type name="utf8"/>
1215- </type>
1216- </parameter>
1217- </parameters>
1218- </callback>
1219- <callback name="NotifyFunc" c:type="AnnotationNotifyFunc">
1220- <doc xml:whitespace="preserve">This is a callback with a 'closure' argument that is not named
1221-'user_data' and hence has to be annotated.</doc>
1222- <return-value transfer-ownership="none">
1223- <type name="none" c:type="void"/>
1224- </return-value>
1225- <parameters>
1226- <parameter name="data" transfer-ownership="none" closure="0">
1227- <doc xml:whitespace="preserve">The user data</doc>
1228- <type name="gpointer" c:type="gpointer"/>
1229- </parameter>
1230- </parameters>
1231- </callback>
1232- <class name="Object"
1233- c:symbol-prefix="object"
1234- c:type="AnnotationObject"
1235- parent="GObject.Object"
1236- glib:type-name="AnnotationObject"
1237- glib:get-type="annotation_object_get_type"
1238- glib:type-struct="ObjectClass">
1239- <attribute name="org.example.Test" value="cows"/>
1240- <doc xml:whitespace="preserve">This is an object used to test annotations.</doc>
1241- <method name="allow_none" c:identifier="annotation_object_allow_none">
1242- <return-value transfer-ownership="none">
1243- <doc xml:whitespace="preserve">%NULL always</doc>
1244- <type name="GObject.Object" c:type="GObject*"/>
1245- </return-value>
1246- <parameters>
1247- <parameter name="somearg" transfer-ownership="none" allow-none="1">
1248- <type name="utf8" c:type="gchar*"/>
1249- </parameter>
1250- </parameters>
1251- </method>
1252- <method name="calleeowns" c:identifier="annotation_object_calleeowns">
1253- <doc xml:whitespace="preserve">This is a test for out arguments; GObject defaults to transfer</doc>
1254- <return-value transfer-ownership="none">
1255- <doc xml:whitespace="preserve">an int</doc>
1256- <type name="gint" c:type="gint"/>
1257- </return-value>
1258- <parameters>
1259- <parameter name="toown"
1260- direction="out"
1261- caller-allocates="0"
1262- transfer-ownership="full">
1263- <doc xml:whitespace="preserve">a #GObject</doc>
1264- <type name="GObject.Object" c:type="GObject**"/>
1265- </parameter>
1266- </parameters>
1267- </method>
1268- <method name="calleesowns" c:identifier="annotation_object_calleesowns">
1269- <doc xml:whitespace="preserve">This is a test for out arguments, one transferred, other not</doc>
1270- <return-value transfer-ownership="none">
1271- <doc xml:whitespace="preserve">an int</doc>
1272- <type name="gint" c:type="gint"/>
1273- </return-value>
1274- <parameters>
1275- <parameter name="toown1"
1276- direction="out"
1277- caller-allocates="0"
1278- transfer-ownership="full">
1279- <doc xml:whitespace="preserve">a #GObject</doc>
1280- <type name="GObject.Object" c:type="GObject**"/>
1281- </parameter>
1282- <parameter name="toown2"
1283- direction="out"
1284- caller-allocates="0"
1285- transfer-ownership="none">
1286- <doc xml:whitespace="preserve">a #GObject</doc>
1287- <type name="GObject.Object" c:type="GObject**"/>
1288- </parameter>
1289- </parameters>
1290- </method>
1291- <method name="compute_sum" c:identifier="annotation_object_compute_sum">
1292- <doc xml:whitespace="preserve">Test taking a zero-terminated array</doc>
1293- <return-value transfer-ownership="none">
1294- <type name="none" c:type="void"/>
1295- </return-value>
1296- <parameters>
1297- <parameter name="nums" transfer-ownership="none">
1298- <doc xml:whitespace="preserve">Sequence of numbers</doc>
1299- <array c:type="int*">
1300- <type name="gint"/>
1301- </array>
1302- </parameter>
1303- </parameters>
1304- </method>
1305- <method name="compute_sum_n"
1306- c:identifier="annotation_object_compute_sum_n">
1307- <doc xml:whitespace="preserve">Test taking an array with length parameter</doc>
1308- <return-value transfer-ownership="none">
1309- <type name="none" c:type="void"/>
1310- </return-value>
1311- <parameters>
1312- <parameter name="nums" transfer-ownership="none">
1313- <doc xml:whitespace="preserve">Sequence of numbers that are zero-terminated</doc>
1314- <array length="1" zero-terminated="0" c:type="int*">
1315- <type name="gint"/>
1316- </array>
1317- </parameter>
1318- <parameter name="n_nums" transfer-ownership="none">
1319- <doc xml:whitespace="preserve">Length of number array</doc>
1320- <type name="gint" c:type="int"/>
1321- </parameter>
1322- </parameters>
1323- </method>
1324- <method name="compute_sum_nz"
1325- c:identifier="annotation_object_compute_sum_nz">
1326- <doc xml:whitespace="preserve">Test taking a zero-terminated array with length parameter</doc>
1327- <return-value transfer-ownership="none">
1328- <type name="none" c:type="void"/>
1329- </return-value>
1330- <parameters>
1331- <parameter name="nums" transfer-ownership="none">
1332- <doc xml:whitespace="preserve">Sequence of numbers that are zero-terminated</doc>
1333- <array length="1" c:type="int*">
1334- <type name="gint"/>
1335- </array>
1336- </parameter>
1337- <parameter name="n_nums" transfer-ownership="none">
1338- <doc xml:whitespace="preserve">Length of number array</doc>
1339- <type name="gint" c:type="int"/>
1340- </parameter>
1341- </parameters>
1342- </method>
1343- <method name="create_object"
1344- c:identifier="annotation_object_create_object">
1345- <doc xml:whitespace="preserve">Test returning a caller-owned object</doc>
1346- <return-value transfer-ownership="full">
1347- <doc xml:whitespace="preserve">The object</doc>
1348- <type name="GObject.Object" c:type="GObject*"/>
1349- </return-value>
1350- </method>
1351- <method name="do_not_use"
1352- c:identifier="annotation_object_do_not_use"
1353- deprecated="Use annotation_object_create_object() instead."
1354- deprecated-version="0.12">
1355- <return-value transfer-ownership="none">
1356- <doc xml:whitespace="preserve">%NULL always</doc>
1357- <type name="GObject.Object" c:type="GObject*"/>
1358- </return-value>
1359- </method>
1360- <method name="extra_annos" c:identifier="annotation_object_extra_annos">
1361- <attribute name="org.foobar" value="testvalue"/>
1362- <return-value transfer-ownership="none">
1363- <type name="none" c:type="void"/>
1364- </return-value>
1365- </method>
1366- <method name="foreach" c:identifier="annotation_object_foreach">
1367- <doc xml:whitespace="preserve">Test taking a call-scoped callback</doc>
1368- <return-value transfer-ownership="none">
1369- <type name="none" c:type="void"/>
1370- </return-value>
1371- <parameters>
1372- <parameter name="func"
1373- transfer-ownership="none"
1374- scope="call"
1375- closure="1">
1376- <doc xml:whitespace="preserve">Callback to invoke</doc>
1377- <type name="ForeachFunc" c:type="AnnotationForeachFunc"/>
1378- </parameter>
1379- <parameter name="user_data" transfer-ownership="none">
1380- <doc xml:whitespace="preserve">Callback user data</doc>
1381- <type name="gpointer" c:type="gpointer"/>
1382- </parameter>
1383- </parameters>
1384- </method>
1385- <method name="get_hash" c:identifier="annotation_object_get_hash">
1386- <doc xml:whitespace="preserve">This is a test for returning a hash table mapping strings to
1387-objects.</doc>
1388- <return-value transfer-ownership="full">
1389- <doc xml:whitespace="preserve">hash table</doc>
1390- <type name="GLib.HashTable" c:type="GHashTable*">
1391- <type name="utf8"/>
1392- <type name="GObject.Object"/>
1393- </type>
1394- </return-value>
1395- </method>
1396- <method name="get_objects" c:identifier="annotation_object_get_objects">
1397- <doc xml:whitespace="preserve">This is a test for returning a list of objects.
1398-The list itself should be freed, but not the internal objects,
1399-intentionally similar example to gtk_container_get_children</doc>
1400- <return-value transfer-ownership="container">
1401- <doc xml:whitespace="preserve">list of objects</doc>
1402- <type name="GLib.SList" c:type="GSList*">
1403- <type name="Object"/>
1404- </type>
1405- </return-value>
1406- </method>
1407- <method name="get_strings" c:identifier="annotation_object_get_strings">
1408- <doc xml:whitespace="preserve">This is a test for returning a list of strings, where
1409-each string needs to be freed.</doc>
1410- <return-value transfer-ownership="full">
1411- <doc xml:whitespace="preserve">list of strings</doc>
1412- <type name="GLib.List" c:type="GList*">
1413- <type name="utf8"/>
1414- </type>
1415- </return-value>
1416- </method>
1417- <method name="hidden_self" c:identifier="annotation_object_hidden_self">
1418- <return-value transfer-ownership="none">
1419- <type name="none" c:type="void"/>
1420- </return-value>
1421- </method>
1422- <method name="in" c:identifier="annotation_object_in">
1423- <doc xml:whitespace="preserve">This is a test for in arguments</doc>
1424- <return-value transfer-ownership="none">
1425- <doc xml:whitespace="preserve">an int</doc>
1426- <type name="gint" c:type="gint"/>
1427- </return-value>
1428- <parameters>
1429- <parameter name="inarg" transfer-ownership="none">
1430- <doc xml:whitespace="preserve">This is an argument test</doc>
1431- <type name="gint" c:type="int*"/>
1432- </parameter>
1433- </parameters>
1434- </method>
1435- <method name="inout" c:identifier="annotation_object_inout">
1436- <doc xml:whitespace="preserve">This is a test for out arguments</doc>
1437- <return-value transfer-ownership="none">
1438- <doc xml:whitespace="preserve">an int</doc>
1439- <type name="gint" c:type="gint"/>
1440- </return-value>
1441- <parameters>
1442- <parameter name="inoutarg"
1443- direction="inout"
1444- caller-allocates="0"
1445- transfer-ownership="full">
1446- <doc xml:whitespace="preserve">This is an argument test</doc>
1447- <type name="gint" c:type="int*"/>
1448- </parameter>
1449- </parameters>
1450- </method>
1451- <method name="inout2" c:identifier="annotation_object_inout2">
1452- <doc xml:whitespace="preserve">This is a second test for out arguments</doc>
1453- <return-value transfer-ownership="none">
1454- <doc xml:whitespace="preserve">an int</doc>
1455- <type name="gint" c:type="gint"/>
1456- </return-value>
1457- <parameters>
1458- <parameter name="inoutarg"
1459- direction="inout"
1460- caller-allocates="0"
1461- transfer-ownership="full">
1462- <doc xml:whitespace="preserve">This is an argument test</doc>
1463- <type name="gint" c:type="int*"/>
1464- </parameter>
1465- </parameters>
1466- </method>
1467- <method name="inout3" c:identifier="annotation_object_inout3">
1468- <doc xml:whitespace="preserve">This is a 3th test for out arguments</doc>
1469- <return-value transfer-ownership="none">
1470- <doc xml:whitespace="preserve">an int</doc>
1471- <type name="gint" c:type="gint"/>
1472- </return-value>
1473- <parameters>
1474- <parameter name="inoutarg"
1475- direction="inout"
1476- caller-allocates="0"
1477- transfer-ownership="full"
1478- allow-none="1">
1479- <doc xml:whitespace="preserve">This is an argument test</doc>
1480- <type name="gint" c:type="int*"/>
1481- </parameter>
1482- </parameters>
1483- </method>
1484- <method name="method" c:identifier="annotation_object_method">
1485- <return-value transfer-ownership="none">
1486- <doc xml:whitespace="preserve">an int</doc>
1487- <type name="gint" c:type="gint"/>
1488- </return-value>
1489- </method>
1490- <method name="notrans" c:identifier="annotation_object_notrans">
1491- <return-value transfer-ownership="none">
1492- <doc xml:whitespace="preserve">An object, not referenced</doc>
1493- <type name="GObject.Object" c:type="GObject*"/>
1494- </return-value>
1495- </method>
1496- <method name="out" c:identifier="annotation_object_out">
1497- <doc xml:whitespace="preserve">This is a test for out arguments</doc>
1498- <return-value transfer-ownership="none">
1499- <doc xml:whitespace="preserve">an int</doc>
1500- <type name="gint" c:type="gint"/>
1501- </return-value>
1502- <parameters>
1503- <parameter name="outarg"
1504- direction="out"
1505- caller-allocates="0"
1506- transfer-ownership="full">
1507- <doc xml:whitespace="preserve">This is an argument test</doc>
1508- <type name="gint" c:type="int*"/>
1509- </parameter>
1510- </parameters>
1511- </method>
1512- <method name="parse_args" c:identifier="annotation_object_parse_args">
1513- <doc xml:whitespace="preserve">Test taking a zero-terminated array with length parameter</doc>
1514- <return-value transfer-ownership="none">
1515- <type name="none" c:type="void"/>
1516- </return-value>
1517- <parameters>
1518- <parameter name="argc"
1519- direction="inout"
1520- caller-allocates="0"
1521- transfer-ownership="full">
1522- <doc xml:whitespace="preserve">Length of the argument vector</doc>
1523- <type name="gint" c:type="int*"/>
1524- </parameter>
1525- <parameter name="argv"
1526- direction="inout"
1527- caller-allocates="0"
1528- transfer-ownership="full">
1529- <doc xml:whitespace="preserve">Argument vector</doc>
1530- <array length="0" c:type="char***">
1531- <type name="utf8"/>
1532- </array>
1533- </parameter>
1534- </parameters>
1535- </method>
1536- <method name="set_data" c:identifier="annotation_object_set_data">
1537- <doc xml:whitespace="preserve">Test taking a guchar * with a length.</doc>
1538- <return-value transfer-ownership="none">
1539- <type name="none" c:type="void"/>
1540- </return-value>
1541- <parameters>
1542- <parameter name="data" transfer-ownership="none">
1543- <doc xml:whitespace="preserve">The data</doc>
1544- <array length="1" c:type="guchar*">
1545- <type name="guint8"/>
1546- </array>
1547- </parameter>
1548- <parameter name="length" transfer-ownership="none">
1549- <doc xml:whitespace="preserve">Length of the data</doc>
1550- <type name="gulong" c:type="gsize"/>
1551- </parameter>
1552- </parameters>
1553- </method>
1554- <method name="set_data2" c:identifier="annotation_object_set_data2">
1555- <doc xml:whitespace="preserve">Test taking a gchar * with a length.</doc>
1556- <return-value transfer-ownership="none">
1557- <type name="none" c:type="void"/>
1558- </return-value>
1559- <parameters>
1560- <parameter name="data" transfer-ownership="none">
1561- <doc xml:whitespace="preserve">The data</doc>
1562- <array length="1" c:type="gchar*">
1563- <type name="gint8"/>
1564- </array>
1565- </parameter>
1566- <parameter name="length" transfer-ownership="none">
1567- <doc xml:whitespace="preserve">Length of the data</doc>
1568- <type name="gulong" c:type="gsize"/>
1569- </parameter>
1570- </parameters>
1571- </method>
1572- <method name="set_data3" c:identifier="annotation_object_set_data3">
1573- <doc xml:whitespace="preserve">Test taking a gchar * with a length, overriding the array element
1574-type.</doc>
1575- <return-value transfer-ownership="none">
1576- <type name="none" c:type="void"/>
1577- </return-value>
1578- <parameters>
1579- <parameter name="data" transfer-ownership="none">
1580- <doc xml:whitespace="preserve">The data</doc>
1581- <array length="1" c:type="gpointer">
1582- <type name="guint8"/>
1583- </array>
1584- </parameter>
1585- <parameter name="length" transfer-ownership="none">
1586- <doc xml:whitespace="preserve">Length of the data</doc>
1587- <type name="gulong" c:type="gsize"/>
1588- </parameter>
1589- </parameters>
1590- </method>
1591- <method name="string_out" c:identifier="annotation_object_string_out">
1592- <doc xml:whitespace="preserve">Test returning a string as an out parameter</doc>
1593- <return-value transfer-ownership="none">
1594- <doc xml:whitespace="preserve">some boolean</doc>
1595- <type name="gboolean" c:type="gboolean"/>
1596- </return-value>
1597- <parameters>
1598- <parameter name="str_out"
1599- direction="out"
1600- caller-allocates="0"
1601- transfer-ownership="full">
1602- <doc xml:whitespace="preserve">string return value</doc>
1603- <type name="utf8" c:type="char**"/>
1604- </parameter>
1605- </parameters>
1606- </method>
1607- <method name="use_buffer" c:identifier="annotation_object_use_buffer">
1608- <return-value transfer-ownership="none">
1609- <type name="none" c:type="void"/>
1610- </return-value>
1611- <parameters>
1612- <parameter name="bytes" transfer-ownership="none">
1613- <type name="guint8" c:type="guchar*"/>
1614- </parameter>
1615- </parameters>
1616- </method>
1617- <method name="watch"
1618- c:identifier="annotation_object_watch"
1619- shadowed-by="watch_full"
1620- introspectable="0">
1621- <doc xml:whitespace="preserve">This is here just for the sake of being overriden by its
1622-annotation_object_watch_full().</doc>
1623- <return-value transfer-ownership="none">
1624- <type name="none" c:type="void"/>
1625- </return-value>
1626- <parameters>
1627- <parameter name="func" transfer-ownership="none" closure="1">
1628- <doc xml:whitespace="preserve">The callback</doc>
1629- <type name="ForeachFunc" c:type="AnnotationForeachFunc"/>
1630- </parameter>
1631- <parameter name="user_data" transfer-ownership="none">
1632- <doc xml:whitespace="preserve">The callback data</doc>
1633- <type name="gpointer" c:type="gpointer"/>
1634- </parameter>
1635- </parameters>
1636- </method>
1637- <method name="watch_full"
1638- c:identifier="annotation_object_watch_full"
1639- shadows="watch">
1640- <doc xml:whitespace="preserve">Test overriding via the "Rename To" annotation.</doc>
1641- <return-value transfer-ownership="none">
1642- <type name="none" c:type="void"/>
1643- </return-value>
1644- <parameters>
1645- <parameter name="func"
1646- transfer-ownership="none"
1647- scope="notified"
1648- closure="1"
1649- destroy="2">
1650- <doc xml:whitespace="preserve">The callback</doc>
1651- <type name="ForeachFunc" c:type="AnnotationForeachFunc"/>
1652- </parameter>
1653- <parameter name="user_data" transfer-ownership="none">
1654- <doc xml:whitespace="preserve">The callback data</doc>
1655- <type name="gpointer" c:type="gpointer"/>
1656- </parameter>
1657- <parameter name="destroy" transfer-ownership="none" scope="async">
1658- <doc xml:whitespace="preserve">Destroy notification</doc>
1659- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1660- </parameter>
1661- </parameters>
1662- </method>
1663- <method name="with_voidp" c:identifier="annotation_object_with_voidp">
1664- <return-value transfer-ownership="none">
1665- <type name="none" c:type="void"/>
1666- </return-value>
1667- <parameters>
1668- <parameter name="data" transfer-ownership="none">
1669- <type name="gpointer" c:type="void*"/>
1670- </parameter>
1671- </parameters>
1672- </method>
1673- <property name="function-property"
1674- writable="1"
1675- construct="1"
1676- transfer-ownership="none">
1677- <type name="Callback"/>
1678- </property>
1679- <property name="string-property"
1680- version="1.0"
1681- deprecated="Use better-string-property instead"
1682- deprecated-version="1.2"
1683- writable="1"
1684- construct="1"
1685- transfer-ownership="none">
1686- <doc xml:whitespace="preserve">This is a property which is a string</doc>
1687- <type name="utf8"/>
1688- </property>
1689- <field name="parent_instance">
1690- <type name="GObject.Object" c:type="GObject"/>
1691- </field>
1692- <glib:signal name="attribute-signal">
1693- <doc xml:whitespace="preserve">This signal tests a signal with attributes.</doc>
1694- <return-value transfer-ownership="full">
1695- <attribute name="some.annotation.foo3" value="val3"/>
1696- <doc xml:whitespace="preserve">the return value</doc>
1697- <type name="utf8"/>
1698- </return-value>
1699- <parameters>
1700- <parameter name="arg1" transfer-ownership="none">
1701- <attribute name="some.annotation.foo1" value="val1"/>
1702- <doc xml:whitespace="preserve">a value</doc>
1703- <type name="utf8"/>
1704- </parameter>
1705- <parameter name="arg2" transfer-ownership="none">
1706- <attribute name="some.annotation.foo2" value="val2"/>
1707- <doc xml:whitespace="preserve">another value</doc>
1708- <type name="utf8"/>
1709- </parameter>
1710- </parameters>
1711- </glib:signal>
1712- <glib:signal name="doc-empty-arg-parsing">
1713- <doc xml:whitespace="preserve">This signal tests an empty document argument (@arg1)</doc>
1714- <return-value transfer-ownership="none">
1715- <type name="none"/>
1716- </return-value>
1717- <parameters>
1718- <parameter name="object" transfer-ownership="none">
1719- <type name="gpointer"/>
1720- </parameter>
1721- </parameters>
1722- </glib:signal>
1723- <glib:signal name="list-signal">
1724- <doc xml:whitespace="preserve">This is a signal which takes a list of strings, but it's not
1725-known by GObject as it's only marked as G_TYPE_POINTER</doc>
1726- <return-value transfer-ownership="none">
1727- <type name="none"/>
1728- </return-value>
1729- <parameters>
1730- <parameter name="list" transfer-ownership="container">
1731- <doc xml:whitespace="preserve">a list of strings</doc>
1732- <type name="GLib.List">
1733- <type name="utf8"/>
1734- </type>
1735- </parameter>
1736- </parameters>
1737- </glib:signal>
1738- <glib:signal name="string-signal"
1739- version="1.0"
1740- deprecated="Use other-signal instead"
1741- deprecated-version="1.2">
1742- <doc xml:whitespace="preserve">This is a signal which has a broken signal handler,
1743-it says it's pointer but it's actually a string.</doc>
1744- <return-value transfer-ownership="none">
1745- <type name="none"/>
1746- </return-value>
1747- <parameters>
1748- <parameter name="string" transfer-ownership="none">
1749- <doc xml:whitespace="preserve">a string</doc>
1750- <type name="utf8"/>
1751- </parameter>
1752- </parameters>
1753- </glib:signal>
1754- </class>
1755- <record name="ObjectClass"
1756- c:type="AnnotationObjectClass"
1757- glib:is-gtype-struct-for="Object">
1758- <field name="parent_class">
1759- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1760- </field>
1761- </record>
1762- <record name="Struct" c:type="AnnotationStruct">
1763- <doc xml:whitespace="preserve">This is a test of an array of object in an field of a struct.</doc>
1764- <field name="objects" writable="1">
1765- <array zero-terminated="0" c:type="AnnotationObject" fixed-size="10">
1766- <type name="Object" c:type="AnnotationObject*"/>
1767- </array>
1768- </field>
1769- </record>
1770- <function name="attribute_func" c:identifier="annotation_attribute_func">
1771- <return-value transfer-ownership="none">
1772- <attribute name="some.other.annotation" value="value2"/>
1773- <attribute name="yet.another.annotation" value="another_value"/>
1774- <doc xml:whitespace="preserve">The return value.</doc>
1775- <type name="gint" c:type="gint"/>
1776- </return-value>
1777- <parameters>
1778- <parameter name="object" transfer-ownership="none">
1779- <doc xml:whitespace="preserve">A #AnnotationObject.</doc>
1780- <type name="Object" c:type="AnnotationObject*"/>
1781- </parameter>
1782- <parameter name="data" transfer-ownership="none">
1783- <attribute name="some.annotation" value="value"/>
1784- <attribute name="another.annotation" value="blahvalue"/>
1785- <doc xml:whitespace="preserve">Some data.</doc>
1786- <type name="utf8" c:type="gchar*"/>
1787- </parameter>
1788- </parameters>
1789- </function>
1790- <function name="custom_destroy" c:identifier="annotation_custom_destroy">
1791- <doc xml:whitespace="preserve">Test messing up the heuristic of closure/destroy-notification
1792-detection, and fixing it via annotations.</doc>
1793- <return-value transfer-ownership="none">
1794- <type name="none" c:type="void"/>
1795- </return-value>
1796- <parameters>
1797- <parameter name="callback"
1798- transfer-ownership="none"
1799- scope="notified"
1800- closure="2"
1801- destroy="1">
1802- <doc xml:whitespace="preserve">Destroy notification</doc>
1803- <type name="Callback" c:type="AnnotationCallback"/>
1804- </parameter>
1805- <parameter name="destroy"
1806- transfer-ownership="none"
1807- scope="notified"
1808- closure="2">
1809- <type name="NotifyFunc" c:type="AnnotationNotifyFunc"/>
1810- </parameter>
1811- <parameter name="data" transfer-ownership="none">
1812- <type name="gpointer" c:type="gpointer"/>
1813- </parameter>
1814- </parameters>
1815- </function>
1816- <function name="get_source_file" c:identifier="annotation_get_source_file">
1817- <return-value transfer-ownership="full">
1818- <doc xml:whitespace="preserve">Source file</doc>
1819- <type name="filename"/>
1820- </return-value>
1821- </function>
1822- <function name="init" c:identifier="annotation_init">
1823- <return-value transfer-ownership="none">
1824- <type name="none" c:type="void"/>
1825- </return-value>
1826- <parameters>
1827- <parameter name="argc"
1828- direction="inout"
1829- caller-allocates="0"
1830- transfer-ownership="full">
1831- <doc xml:whitespace="preserve">The number of args.</doc>
1832- <type name="gint" c:type="int*"/>
1833- </parameter>
1834- <parameter name="argv"
1835- direction="inout"
1836- caller-allocates="0"
1837- transfer-ownership="full">
1838- <doc xml:whitespace="preserve">The arguments.</doc>
1839- <array length="0" c:type="char***">
1840- <type name="utf8"/>
1841- </array>
1842- </parameter>
1843- </parameters>
1844- </function>
1845- <function name="invalid_annotation"
1846- c:identifier="annotation_invalid_annotation">
1847- <return-value transfer-ownership="none">
1848- <type name="none" c:type="void"/>
1849- </return-value>
1850- <parameters>
1851- <parameter name="foo" transfer-ownership="none">
1852- <doc xml:whitespace="preserve">some text (e.g. example) or else</doc>
1853- <type name="gint" c:type="int"/>
1854- </parameter>
1855- </parameters>
1856- </function>
1857- <function name="ptr_array"
1858- c:identifier="annotation_ptr_array"
1859- introspectable="0">
1860- <return-value transfer-ownership="none">
1861- <type name="none" c:type="void"/>
1862- </return-value>
1863- <parameters>
1864- <parameter name="array" transfer-ownership="none">
1865- <doc xml:whitespace="preserve">the array</doc>
1866- <array name="GLib.PtrArray" c:type="GPtrArray*">
1867- <type name="GLib.Value"/>
1868- </array>
1869- </parameter>
1870- </parameters>
1871- </function>
1872- <function name="return_array" c:identifier="annotation_return_array">
1873- <return-value transfer-ownership="full">
1874- <doc xml:whitespace="preserve">The return value</doc>
1875- <array length="0" c:type="char**">
1876- <type name="utf8"/>
1877- </array>
1878- </return-value>
1879- <parameters>
1880- <parameter name="length"
1881- direction="out"
1882- caller-allocates="0"
1883- transfer-ownership="full">
1884- <doc xml:whitespace="preserve">Number of return values</doc>
1885- <type name="gint" c:type="int*"/>
1886- </parameter>
1887- </parameters>
1888- </function>
1889- <function name="set_source_file" c:identifier="annotation_set_source_file">
1890- <return-value transfer-ownership="none">
1891- <type name="none" c:type="void"/>
1892- </return-value>
1893- <parameters>
1894- <parameter name="fname" transfer-ownership="none">
1895- <doc xml:whitespace="preserve">Source file</doc>
1896- <type name="filename"/>
1897- </parameter>
1898- </parameters>
1899- </function>
1900- <function name="space_after_comment_bug631690"
1901- c:identifier="annotation_space_after_comment_bug631690">
1902- <doc xml:whitespace="preserve">Explicitly test having a space after the ** here.</doc>
1903- <return-value transfer-ownership="none">
1904- <type name="none" c:type="void"/>
1905- </return-value>
1906- </function>
1907- <function name="string_array_length"
1908- c:identifier="annotation_string_array_length">
1909- <return-value transfer-ownership="none">
1910- <type name="none" c:type="void"/>
1911- </return-value>
1912- <parameters>
1913- <parameter name="n_properties" transfer-ownership="none">
1914- <type name="guint" c:type="guint"/>
1915- </parameter>
1916- <parameter name="properties" transfer-ownership="none">
1917- <array length="0" c:type="gchar*">
1918- <type name="utf8"/>
1919- </array>
1920- </parameter>
1921- </parameters>
1922- </function>
1923- <function name="string_zero_terminated"
1924- c:identifier="annotation_string_zero_terminated">
1925- <return-value transfer-ownership="full">
1926- <doc xml:whitespace="preserve">The return value</doc>
1927- <array c:type="char**">
1928- <type name="utf8"/>
1929- </array>
1930- </return-value>
1931- </function>
1932- <function name="string_zero_terminated_out"
1933- c:identifier="annotation_string_zero_terminated_out">
1934- <return-value transfer-ownership="none">
1935- <type name="none" c:type="void"/>
1936- </return-value>
1937- <parameters>
1938- <parameter name="out"
1939- direction="inout"
1940- caller-allocates="0"
1941- transfer-ownership="full">
1942- <array c:type="char***">
1943- <type name="utf8"/>
1944- </array>
1945- </parameter>
1946- </parameters>
1947- </function>
1948- <function name="test_parsing_bug630862"
1949- c:identifier="annotation_test_parsing_bug630862">
1950- <doc xml:whitespace="preserve">See https://bugzilla.gnome.org/show_bug.cgi?id=630862</doc>
1951- <return-value transfer-ownership="none">
1952- <doc xml:whitespace="preserve">An object, note the colon:in here</doc>
1953- <type name="GObject.Object" c:type="GObject*"/>
1954- </return-value>
1955- </function>
1956- <function name="versioned"
1957- c:identifier="annotation_versioned"
1958- version="0.6">
1959- <return-value transfer-ownership="none">
1960- <type name="none" c:type="void"/>
1961- </return-value>
1962- </function>
1963- </namespace>
1964-</repository>
1965
1966=== removed file '.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Foo-1.0-expected.gir'
1967--- .pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Foo-1.0-expected.gir 2011-01-21 11:20:57 +0000
1968+++ .pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Foo-1.0-expected.gir 1970-01-01 00:00:00 +0000
1969@@ -1,1170 +0,0 @@
1970-<?xml version="1.0"?>
1971-<!-- This file was automatically generated from C sources - DO NOT EDIT!
1972-To affect the contents of this file, edit the original C definitions,
1973-and/or use gtk-doc annotations. -->
1974-<repository version="1.2"
1975- xmlns="http://www.gtk.org/introspection/core/1.0"
1976- xmlns:c="http://www.gtk.org/introspection/c/1.0"
1977- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
1978- <include name="GLib" version="2.0"/>
1979- <include name="GObject" version="2.0"/>
1980- <include name="Gio" version="2.0"/>
1981- <include name="Utility" version="1.0"/>
1982- <package name="gobject-2.0"/>
1983- <c:include name="foo.h"/>
1984- <namespace name="Foo"
1985- version="1.0"
1986- shared-library="libfoo.so"
1987- c:identifier-prefixes="Foo"
1988- c:symbol-prefixes="foo">
1989- <alias name="ObjectCookie" c:type="FooObjectCookie">
1990- <type name="gpointer" c:type="gpointer"/>
1991- </alias>
1992- <alias name="XEvent" c:type="FooXEvent">
1993- <type name="gpointer" c:type="gpointer"/>
1994- </alias>
1995- <enumeration name="ASingle" c:type="FooASingle">
1996- <member name="some_single_enum"
1997- value="0"
1998- c:identifier="FOO_SOME_SINGLE_ENUM"/>
1999- </enumeration>
2000- <enumeration name="AddressType" c:type="FooAddressType">
2001- <member name="invalid" value="0" c:identifier="FOO_ADDRESS_INVALID"/>
2002- <member name="ipv4" value="1" c:identifier="FOO_ADDRESS_IPV4"/>
2003- <member name="ipv6" value="2" c:identifier="FOO_ADDRESS_IPV6"/>
2004- </enumeration>
2005- <record name="BRect"
2006- c:type="FooBRect"
2007- glib:type-name="FooBRect"
2008- glib:get-type="foo_brect_get_type"
2009- c:symbol-prefix="brect">
2010- <field name="x" writable="1">
2011- <type name="gdouble" c:type="double"/>
2012- </field>
2013- <field name="y" writable="1">
2014- <type name="gdouble" c:type="double"/>
2015- </field>
2016- <constructor name="new" c:identifier="foo_brect_new">
2017- <return-value transfer-ownership="full">
2018- <type name="BRect" c:type="FooBRect*"/>
2019- </return-value>
2020- <parameters>
2021- <parameter name="x" transfer-ownership="none">
2022- <type name="gdouble" c:type="double"/>
2023- </parameter>
2024- <parameter name="y" transfer-ownership="none">
2025- <type name="gdouble" c:type="double"/>
2026- </parameter>
2027- </parameters>
2028- </constructor>
2029- <method name="add" c:identifier="foo_brect_add">
2030- <return-value transfer-ownership="none">
2031- <type name="none" c:type="void"/>
2032- </return-value>
2033- <parameters>
2034- <parameter name="b2" transfer-ownership="none">
2035- <type name="BRect" c:type="FooBRect*"/>
2036- </parameter>
2037- </parameters>
2038- </method>
2039- </record>
2040- <union name="BUnion"
2041- c:type="FooBUnion"
2042- glib:type-name="FooBUnion"
2043- glib:get-type="foo_bunion_get_type"
2044- c:symbol-prefix="bunion">
2045- <field name="type" writable="1">
2046- <type name="gint" c:type="int"/>
2047- </field>
2048- <field name="v" writable="1">
2049- <type name="gdouble" c:type="double"/>
2050- </field>
2051- <field name="rect" writable="1">
2052- <type name="BRect" c:type="FooBRect*"/>
2053- </field>
2054- <constructor name="new" c:identifier="foo_bunion_new">
2055- <return-value transfer-ownership="full">
2056- <type name="BUnion" c:type="FooBUnion*"/>
2057- </return-value>
2058- </constructor>
2059- <method name="get_contained_type"
2060- c:identifier="foo_bunion_get_contained_type">
2061- <return-value transfer-ownership="none">
2062- <type name="gint" c:type="int"/>
2063- </return-value>
2064- </method>
2065- </union>
2066- <record name="Boxed"
2067- c:type="FooBoxed"
2068- glib:type-name="FooBoxed"
2069- glib:get-type="foo_boxed_get_type"
2070- c:symbol-prefix="boxed">
2071- <constructor name="new" c:identifier="foo_boxed_new">
2072- <return-value transfer-ownership="full">
2073- <type name="Boxed" c:type="FooBoxed*"/>
2074- </return-value>
2075- </constructor>
2076- <method name="method" c:identifier="foo_boxed_method">
2077- <return-value transfer-ownership="none">
2078- <type name="none" c:type="void"/>
2079- </return-value>
2080- </method>
2081- </record>
2082- <class name="Buffer"
2083- c:symbol-prefix="buffer"
2084- c:type="FooBuffer"
2085- parent="Object"
2086- glib:type-name="FooBuffer"
2087- glib:get-type="foo_buffer_get_type"
2088- glib:type-struct="BufferClass">
2089- <implements name="Interface"/>
2090- <method name="some_method" c:identifier="foo_buffer_some_method">
2091- <return-value transfer-ownership="none">
2092- <type name="none" c:type="void"/>
2093- </return-value>
2094- </method>
2095- </class>
2096- <record name="BufferClass"
2097- c:type="FooBufferClass"
2098- disguised="1"
2099- glib:is-gtype-struct-for="Buffer">
2100- </record>
2101- <callback name="Callback" c:type="FooCallback">
2102- <return-value transfer-ownership="none">
2103- <type name="gboolean" c:type="gboolean"/>
2104- </return-value>
2105- <parameters>
2106- <parameter name="foo" transfer-ownership="none">
2107- <type name="Object" c:type="FooObject*"/>
2108- </parameter>
2109- <parameter name="b" transfer-ownership="none">
2110- <type name="gboolean" c:type="gboolean"/>
2111- </parameter>
2112- <parameter name="data" transfer-ownership="none">
2113- <type name="gpointer" c:type="gpointer"/>
2114- </parameter>
2115- </parameters>
2116- </callback>
2117- <record name="DBusData"
2118- c:type="FooDBusData"
2119- glib:type-name="FooDBusData"
2120- glib:get-type="foo_dbus_data_get_type"
2121- c:symbol-prefix="dbus_data">
2122- <method name="method" c:identifier="foo_dbus_data_method">
2123- <return-value transfer-ownership="none">
2124- <type name="none" c:type="void"/>
2125- </return-value>
2126- </method>
2127- </record>
2128- <constant name="DEFINE_SHOULD_BE_EXPOSED" value="should be exposed">
2129- <type name="utf8" c:type="gchar*"/>
2130- </constant>
2131- <enumeration name="EnumFullname" c:type="FooEnumFullname">
2132- <member name="one" value="1" c:identifier="FOO_ENUM_FULLNAME_ONE"/>
2133- <member name="two" value="2" c:identifier="FOO_ENUM_FULLNAME_TWO"/>
2134- <member name="three" value="3" c:identifier="FOO_ENUM_FULLNAME_THREE"/>
2135- </enumeration>
2136- <enumeration name="EnumNoType" c:type="FooEnumNoType">
2137- <member name="un" value="1" c:identifier="FOO_ENUM_UN"/>
2138- <member name="deux" value="2" c:identifier="FOO_ENUM_DEUX"/>
2139- <member name="trois" value="3" c:identifier="FOO_ENUM_TROIS"/>
2140- <member name="neuf" value="9" c:identifier="FOO_ENUM_NEUF"/>
2141- </enumeration>
2142- <enumeration name="EnumType"
2143- glib:type-name="FooEnumType"
2144- glib:get-type="foo_enum_type_get_type"
2145- c:type="FooEnumType">
2146- <member name="alpha"
2147- value="0"
2148- c:identifier="FOO_ENUM_ALPHA"
2149- glib:nick="alpha"/>
2150- <member name="beta"
2151- value="1"
2152- c:identifier="FOO_ENUM_BETA"
2153- glib:nick="beta"/>
2154- <member name="delta"
2155- value="2"
2156- c:identifier="FOO_ENUM_DELTA"
2157- glib:nick="delta"/>
2158- </enumeration>
2159- <enumeration name="Error"
2160- glib:type-name="FooError"
2161- glib:get-type="foo_error_get_type"
2162- c:type="FooError"
2163- glib:error-quark="foo_error_quark">
2164- <member name="good"
2165- value="0"
2166- c:identifier="FOO_ERROR_GOOD"
2167- glib:nick="good"/>
2168- <member name="bad"
2169- value="1"
2170- c:identifier="FOO_ERROR_BAD"
2171- glib:nick="bad"/>
2172- <member name="ugly"
2173- value="2"
2174- c:identifier="FOO_ERROR_UGLY"
2175- glib:nick="ugly"/>
2176- </enumeration>
2177- <union name="Event" c:type="FooEvent">
2178- <field name="type" writable="1">
2179- <type name="gint" c:type="int"/>
2180- </field>
2181- <field name="any" writable="1">
2182- <type name="EventAny" c:type="FooEventAny"/>
2183- </field>
2184- <field name="expose" writable="1">
2185- <type name="EventExpose" c:type="FooEventExpose"/>
2186- </field>
2187- </union>
2188- <record name="EventAny" c:type="FooEventAny">
2189- <field name="send_event" writable="1">
2190- <type name="gint8" c:type="gint8"/>
2191- </field>
2192- </record>
2193- <record name="EventExpose" c:type="FooEventExpose">
2194- <field name="send_event" writable="1">
2195- <type name="gint8" c:type="gint8"/>
2196- </field>
2197- <field name="count" writable="1">
2198- <type name="gint" c:type="gint"/>
2199- </field>
2200- </record>
2201- <bitfield name="FlagsNoType" c:type="FooFlagsNoType">
2202- <member name="ett" value="1" c:identifier="FOO_FLAGS_ETT"/>
2203- <member name="tva" value="2" c:identifier="FOO_FLAGS_TVA"/>
2204- <member name="fyra" value="4" c:identifier="FOO_FLAGS_FYRA"/>
2205- </bitfield>
2206- <bitfield name="FlagsType"
2207- glib:type-name="FooFlagsType"
2208- glib:get-type="foo_flags_type_get_type"
2209- c:type="FooFlagsType">
2210- <member name="first"
2211- value="1"
2212- c:identifier="FOO_FLAGS_FIRST"
2213- glib:nick="first"/>
2214- <member name="second"
2215- value="2"
2216- c:identifier="FOO_FLAGS_SECOND"
2217- glib:nick="second"/>
2218- <member name="third"
2219- value="4"
2220- c:identifier="FOO_FLAGS_THIRD"
2221- glib:nick="third"/>
2222- </bitfield>
2223- <record name="ForeignStruct" c:type="FooForeignStruct" foreign="1">
2224- <field name="foo" writable="1">
2225- <type name="gint" c:type="int"/>
2226- </field>
2227- <constructor name="new" c:identifier="foo_foreign_struct_new">
2228- <return-value transfer-ownership="full">
2229- <type name="ForeignStruct" c:type="FooForeignStruct*"/>
2230- </return-value>
2231- </constructor>
2232- <method name="copy" c:identifier="foo_foreign_struct_copy">
2233- <return-value transfer-ownership="full">
2234- <type name="ForeignStruct" c:type="FooForeignStruct*"/>
2235- </return-value>
2236- </method>
2237- </record>
2238- <interface name="Interface"
2239- c:symbol-prefix="interface"
2240- c:type="FooInterface"
2241- glib:type-name="FooInterface"
2242- glib:get-type="foo_interface_get_type"
2243- glib:type-struct="InterfaceIface">
2244- <virtual-method name="do_foo" invoker="do_foo">
2245- <return-value transfer-ownership="none">
2246- <type name="none" c:type="void"/>
2247- </return-value>
2248- <parameters>
2249- <parameter name="x" transfer-ownership="none">
2250- <type name="gint" c:type="int"/>
2251- </parameter>
2252- </parameters>
2253- </virtual-method>
2254- <method name="do_foo" c:identifier="foo_interface_do_foo">
2255- <return-value transfer-ownership="none">
2256- <type name="none" c:type="void"/>
2257- </return-value>
2258- <parameters>
2259- <parameter name="x" transfer-ownership="none">
2260- <type name="gint" c:type="int"/>
2261- </parameter>
2262- </parameters>
2263- </method>
2264- </interface>
2265- <record name="InterfaceIface"
2266- c:type="FooInterfaceIface"
2267- glib:is-gtype-struct-for="Interface">
2268- <field name="parent_iface">
2269- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
2270- </field>
2271- <field name="do_foo">
2272- <callback name="do_foo">
2273- <return-value transfer-ownership="none">
2274- <type name="none" c:type="void"/>
2275- </return-value>
2276- <parameters>
2277- <parameter name="self" transfer-ownership="none">
2278- <type name="Interface" c:type="FooInterface*"/>
2279- </parameter>
2280- <parameter name="x" transfer-ownership="none">
2281- <type name="gint" c:type="int"/>
2282- </parameter>
2283- </parameters>
2284- </callback>
2285- </field>
2286- </record>
2287- <class name="Object"
2288- c:symbol-prefix="object"
2289- c:type="FooObject"
2290- parent="GObject.Object"
2291- glib:type-name="FooObject"
2292- glib:get-type="foo_object_get_type"
2293- glib:type-struct="ObjectClass">
2294- <implements name="Interface"/>
2295- <constructor name="new" c:identifier="foo_object_new">
2296- <return-value transfer-ownership="full">
2297- <type name="Object" c:type="FooObject*"/>
2298- </return-value>
2299- </constructor>
2300- <function name="a_global_method"
2301- c:identifier="foo_object_a_global_method">
2302- <return-value transfer-ownership="none">
2303- <type name="none" c:type="void"/>
2304- </return-value>
2305- <parameters>
2306- <parameter name="obj" transfer-ownership="none">
2307- <type name="Utility.Object" c:type="UtilityObject*"/>
2308- </parameter>
2309- </parameters>
2310- </function>
2311- <function name="get_default" c:identifier="foo_object_get_default">
2312- <doc xml:whitespace="preserve">This function is intended to match clutter_stage_get_default which
2313-uses a C sugar return type.</doc>
2314- <return-value transfer-ownership="none">
2315- <doc xml:whitespace="preserve">The global #FooSubobject</doc>
2316- <type name="Subobject"/>
2317- </return-value>
2318- </function>
2319- <function name="static_meth" c:identifier="foo_object_static_meth">
2320- <return-value transfer-ownership="none">
2321- <type name="gint" c:type="int"/>
2322- </return-value>
2323- </function>
2324- <virtual-method name="read_fn" invoker="read">
2325- <doc xml:whitespace="preserve">Read some stuff.</doc>
2326- <return-value transfer-ownership="none">
2327- <type name="none" c:type="void"/>
2328- </return-value>
2329- <parameters>
2330- <parameter name="offset" transfer-ownership="none">
2331- <doc xml:whitespace="preserve">offset</doc>
2332- <type name="gint" c:type="int"/>
2333- </parameter>
2334- <parameter name="length" transfer-ownership="none">
2335- <doc xml:whitespace="preserve">length</doc>
2336- <type name="gint" c:type="int"/>
2337- </parameter>
2338- </parameters>
2339- </virtual-method>
2340- <virtual-method name="virtual_method" invoker="virtual_method">
2341- <return-value transfer-ownership="none">
2342- <type name="gboolean" c:type="gboolean"/>
2343- </return-value>
2344- <parameters>
2345- <parameter name="first_param" transfer-ownership="none">
2346- <type name="gint" c:type="int"/>
2347- </parameter>
2348- </parameters>
2349- </virtual-method>
2350- <method name="append_new_stack_layer"
2351- c:identifier="foo_object_append_new_stack_layer">
2352- <doc xml:whitespace="preserve">This shouldn't be scanned as a constructor.</doc>
2353- <return-value transfer-ownership="none">
2354- <type name="OtherObject" c:type="FooOtherObject*"/>
2355- </return-value>
2356- <parameters>
2357- <parameter name="x" transfer-ownership="none">
2358- <type name="gint" c:type="int"/>
2359- </parameter>
2360- </parameters>
2361- </method>
2362- <method name="dup_name" c:identifier="foo_object_dup_name">
2363- <return-value transfer-ownership="full">
2364- <type name="utf8" c:type="char*"/>
2365- </return-value>
2366- </method>
2367- <method name="external_type" c:identifier="foo_object_external_type">
2368- <return-value transfer-ownership="none">
2369- <doc xml:whitespace="preserve">%NULL always</doc>
2370- <type name="Utility.Object" c:type="UtilityObject*"/>
2371- </return-value>
2372- </method>
2373- <method name="get_name" c:identifier="foo_object_get_name">
2374- <return-value transfer-ownership="none">
2375- <type name="utf8" c:type="char*"/>
2376- </return-value>
2377- </method>
2378- <method name="handle_glyph" c:identifier="foo_object_handle_glyph">
2379- <return-value transfer-ownership="none">
2380- <type name="none" c:type="void"/>
2381- </return-value>
2382- <parameters>
2383- <parameter name="glyph" transfer-ownership="none">
2384- <type name="Utility.Glyph" c:type="UtilityGlyph"/>
2385- </parameter>
2386- </parameters>
2387- </method>
2388- <method name="is_it_time_yet" c:identifier="foo_object_is_it_time_yet">
2389- <return-value transfer-ownership="none">
2390- <type name="none" c:type="void"/>
2391- </return-value>
2392- <parameters>
2393- <parameter name="time" transfer-ownership="none">
2394- <type name="glong" c:type="time_t"/>
2395- </parameter>
2396- </parameters>
2397- </method>
2398- <method name="new_cookie"
2399- c:identifier="foo_object_new_cookie"
2400- introspectable="0">
2401- <doc xml:whitespace="preserve">Not sure why this test is here...</doc>
2402- <return-value>
2403- <type name="ObjectCookie" c:type="FooObjectCookie"/>
2404- </return-value>
2405- <parameters>
2406- <parameter name="target" transfer-ownership="none">
2407- <type name="utf8" c:type="char*"/>
2408- </parameter>
2409- </parameters>
2410- </method>
2411- <method name="read" c:identifier="foo_object_read">
2412- <doc xml:whitespace="preserve">Read some stuff.</doc>
2413- <return-value transfer-ownership="none">
2414- <type name="none" c:type="void"/>
2415- </return-value>
2416- <parameters>
2417- <parameter name="offset" transfer-ownership="none">
2418- <doc xml:whitespace="preserve">offset</doc>
2419- <type name="gint" c:type="int"/>
2420- </parameter>
2421- <parameter name="length" transfer-ownership="none">
2422- <doc xml:whitespace="preserve">length</doc>
2423- <type name="gint" c:type="int"/>
2424- </parameter>
2425- </parameters>
2426- </method>
2427- <method name="skipped_method"
2428- c:identifier="foo_object_skipped_method"
2429- introspectable="0">
2430- <doc xml:whitespace="preserve">This is only useful from C.</doc>
2431- <return-value transfer-ownership="none">
2432- <type name="none" c:type="void"/>
2433- </return-value>
2434- </method>
2435- <method name="take_all"
2436- c:identifier="foo_object_take_all"
2437- introspectable="0">
2438- <return-value transfer-ownership="none">
2439- <type name="none" c:type="void"/>
2440- </return-value>
2441- <parameters>
2442- <parameter name="x" transfer-ownership="none">
2443- <type name="gint" c:type="int"/>
2444- </parameter>
2445- <parameter transfer-ownership="none">
2446- <varargs>
2447- </varargs>
2448- </parameter>
2449- </parameters>
2450- </method>
2451- <method name="various" c:identifier="foo_object_various">
2452- <return-value transfer-ownership="none">
2453- <type name="none" c:type="void"/>
2454- </return-value>
2455- <parameters>
2456- <parameter name="data" transfer-ownership="none">
2457- <type name="gpointer" c:type="void*"/>
2458- </parameter>
2459- <parameter name="some_type" transfer-ownership="none">
2460- <type name="GType" c:type="GType"/>
2461- </parameter>
2462- </parameters>
2463- </method>
2464- <method name="virtual_method" c:identifier="foo_object_virtual_method">
2465- <return-value transfer-ownership="none">
2466- <type name="gboolean" c:type="gboolean"/>
2467- </return-value>
2468- <parameters>
2469- <parameter name="first_param" transfer-ownership="none">
2470- <type name="gint" c:type="int"/>
2471- </parameter>
2472- </parameters>
2473- </method>
2474- <property name="hidden"
2475- introspectable="0"
2476- writable="1"
2477- construct-only="1"
2478- transfer-ownership="none">
2479- <type/>
2480- </property>
2481- <property name="string"
2482- writable="1"
2483- construct="1"
2484- transfer-ownership="none">
2485- <type name="utf8"/>
2486- </property>
2487- <field name="parent_instance">
2488- <type name="GObject.Object" c:type="GObject"/>
2489- </field>
2490- <field name="some_int">
2491- <type name="gint" c:type="int"/>
2492- </field>
2493- <glib:signal name="signal">
2494- <return-value transfer-ownership="full">
2495- <type name="utf8"/>
2496- </return-value>
2497- <parameters>
2498- <parameter name="object" transfer-ownership="none">
2499- <type name="GObject.Object"/>
2500- </parameter>
2501- <parameter name="p0" transfer-ownership="none">
2502- <type name="gpointer"/>
2503- </parameter>
2504- </parameters>
2505- </glib:signal>
2506- </class>
2507- <record name="ObjectClass"
2508- c:type="FooObjectClass"
2509- glib:is-gtype-struct-for="Object">
2510- <field name="parent_class">
2511- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2512- </field>
2513- <field name="virtual_method">
2514- <callback name="virtual_method">
2515- <return-value transfer-ownership="none">
2516- <type name="gboolean" c:type="gboolean"/>
2517- </return-value>
2518- <parameters>
2519- <parameter name="object" transfer-ownership="none">
2520- <type name="Object" c:type="FooObject*"/>
2521- </parameter>
2522- <parameter name="first_param" transfer-ownership="none">
2523- <type name="gint" c:type="int"/>
2524- </parameter>
2525- </parameters>
2526- </callback>
2527- </field>
2528- <field name="read_fn">
2529- <callback name="read_fn">
2530- <return-value transfer-ownership="none">
2531- <type name="none" c:type="void"/>
2532- </return-value>
2533- <parameters>
2534- <parameter name="object" transfer-ownership="none">
2535- <type name="Object" c:type="FooObject*"/>
2536- </parameter>
2537- <parameter name="offset" transfer-ownership="none">
2538- <doc xml:whitespace="preserve">offset</doc>
2539- <type name="gint" c:type="int"/>
2540- </parameter>
2541- <parameter name="length" transfer-ownership="none">
2542- <doc xml:whitespace="preserve">length</doc>
2543- <type name="gint" c:type="int"/>
2544- </parameter>
2545- </parameters>
2546- </callback>
2547- </field>
2548- <field name="_reserved">
2549- <array zero-terminated="0" c:type="GCallback" fixed-size="4">
2550- <type name="GObject.Callback" c:type="GCallback"/>
2551- </array>
2552- </field>
2553- </record>
2554- <class name="OtherObject"
2555- c:symbol-prefix="other_object"
2556- c:type="FooOtherObject"
2557- parent="GObject.Object"
2558- glib:type-name="FooOtherObject"
2559- glib:get-type="foo_other_object_get_type"
2560- glib:type-struct="OtherObjectClass">
2561- </class>
2562- <record name="OtherObjectClass"
2563- c:type="FooOtherObjectClass"
2564- disguised="1"
2565- glib:is-gtype-struct-for="OtherObject">
2566- </record>
2567- <constant name="PIE_IS_TASTY" value="3.141590">
2568- <type name="gdouble" c:type="gdouble"/>
2569- </constant>
2570- <record name="Rectangle" c:type="FooRectangle">
2571- <field name="x" writable="1">
2572- <type name="gint" c:type="gint"/>
2573- </field>
2574- <field name="y" writable="1">
2575- <type name="gint" c:type="gint"/>
2576- </field>
2577- <field name="width" writable="1">
2578- <type name="gint" c:type="gint"/>
2579- </field>
2580- <field name="height" writable="1">
2581- <type name="gint" c:type="gint"/>
2582- </field>
2583- <method name="add" c:identifier="foo_rectangle_add">
2584- <return-value transfer-ownership="none">
2585- <type name="none" c:type="void"/>
2586- </return-value>
2587- <parameters>
2588- <parameter name="r2" transfer-ownership="none">
2589- <doc xml:whitespace="preserve">source rectangle</doc>
2590- <type name="Rectangle" c:type="FooRectangle*"/>
2591- </parameter>
2592- </parameters>
2593- </method>
2594- </record>
2595- <constant name="SUCCESS_INT" value="4408">
2596- <type name="gint" c:type="gint"/>
2597- </constant>
2598- <enumeration name="Skippable" introspectable="0" c:type="FooSkippable">
2599- <doc xml:whitespace="preserve">Some type that is only interesting from C and should not be
2600-exposed to language bindings.</doc>
2601- <member name="one" value="0" c:identifier="FOO_SKIPPABLE_ONE"/>
2602- <member name="two" value="1" c:identifier="FOO_SKIPPABLE_TWO"/>
2603- </enumeration>
2604- <enumeration name="StackLayer" c:type="FooStackLayer">
2605- <member name="desktop" value="0" c:identifier="FOO_LAYER_DESKTOP"/>
2606- <member name="bottom" value="1" c:identifier="FOO_LAYER_BOTTOM"/>
2607- <member name="normal" value="2" c:identifier="FOO_LAYER_NORMAL"/>
2608- <member name="top" value="4" c:identifier="FOO_LAYER_TOP"/>
2609- <member name="dock" value="4" c:identifier="FOO_LAYER_DOCK"/>
2610- <member name="fullscreen" value="5" c:identifier="FOO_LAYER_FULLSCREEN"/>
2611- <member name="focused_window"
2612- value="6"
2613- c:identifier="FOO_LAYER_FOCUSED_WINDOW"/>
2614- <member name="override_redirect"
2615- value="7"
2616- c:identifier="FOO_LAYER_OVERRIDE_REDIRECT"/>
2617- <member name="last" value="8" c:identifier="FOO_LAYER_LAST"/>
2618- </enumeration>
2619- <record name="Struct" c:type="FooStruct">
2620- <field name="priv" writable="1">
2621- <type name="StructPrivate" c:type="FooStructPrivate*"/>
2622- </field>
2623- <field name="member" writable="1">
2624- <type name="gint" c:type="int"/>
2625- </field>
2626- </record>
2627- <record name="StructPrivate" c:type="FooStructPrivate" disguised="1">
2628- </record>
2629- <interface name="SubInterface"
2630- c:symbol-prefix="sub_interface"
2631- c:type="FooSubInterface"
2632- glib:type-name="FooSubInterface"
2633- glib:get-type="foo_sub_interface_get_type"
2634- glib:type-struct="SubInterfaceIface">
2635- <prerequisite name="Interface"/>
2636- <virtual-method name="destroy_event">
2637- <return-value transfer-ownership="none">
2638- <type name="none" c:type="void"/>
2639- </return-value>
2640- </virtual-method>
2641- <virtual-method name="do_bar" invoker="do_bar">
2642- <return-value transfer-ownership="none">
2643- <type name="none" c:type="void"/>
2644- </return-value>
2645- </virtual-method>
2646- <virtual-method name="do_baz" invoker="do_baz">
2647- <return-value transfer-ownership="none">
2648- <type name="none" c:type="void"/>
2649- </return-value>
2650- <parameters>
2651- <parameter name="callback"
2652- transfer-ownership="none"
2653- scope="call"
2654- closure="1">
2655- <type name="GObject.Callback" c:type="GCallback"/>
2656- </parameter>
2657- <parameter name="data" transfer-ownership="none">
2658- <type name="gpointer" c:type="gpointer"/>
2659- </parameter>
2660- </parameters>
2661- </virtual-method>
2662- <virtual-method name="do_moo" invoker="do_moo">
2663- <return-value transfer-ownership="none">
2664- <type name="none" c:type="void"/>
2665- </return-value>
2666- <parameters>
2667- <parameter transfer-ownership="none">
2668- <type name="gint" c:type="int"/>
2669- </parameter>
2670- <parameter transfer-ownership="none">
2671- <type name="gpointer" c:type="gpointer"/>
2672- </parameter>
2673- </parameters>
2674- </virtual-method>
2675- <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
2676- <return-value transfer-ownership="none">
2677- <type name="none" c:type="void"/>
2678- </return-value>
2679- </method>
2680- <method name="do_baz" c:identifier="foo_sub_interface_do_baz">
2681- <return-value transfer-ownership="none">
2682- <type name="none" c:type="void"/>
2683- </return-value>
2684- <parameters>
2685- <parameter name="callback"
2686- transfer-ownership="none"
2687- scope="call"
2688- closure="1">
2689- <type name="GObject.Callback" c:type="GCallback"/>
2690- </parameter>
2691- <parameter name="data" transfer-ownership="none">
2692- <type name="gpointer" c:type="gpointer"/>
2693- </parameter>
2694- </parameters>
2695- </method>
2696- <method name="do_moo" c:identifier="foo_sub_interface_do_moo">
2697- <return-value transfer-ownership="none">
2698- <type name="none" c:type="void"/>
2699- </return-value>
2700- <parameters>
2701- <parameter transfer-ownership="none">
2702- <type name="gint" c:type="int"/>
2703- </parameter>
2704- <parameter transfer-ownership="none">
2705- <type name="gpointer" c:type="gpointer"/>
2706- </parameter>
2707- </parameters>
2708- </method>
2709- <glib:signal name="destroy-event">
2710- <return-value transfer-ownership="none">
2711- <type name="none"/>
2712- </return-value>
2713- </glib:signal>
2714- </interface>
2715- <record name="SubInterfaceIface"
2716- c:type="FooSubInterfaceIface"
2717- glib:is-gtype-struct-for="SubInterface">
2718- <field name="parent_iface">
2719- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
2720- </field>
2721- <field name="destroy_event">
2722- <callback name="destroy_event">
2723- <return-value transfer-ownership="none">
2724- <type name="none" c:type="void"/>
2725- </return-value>
2726- <parameters>
2727- <parameter name="self" transfer-ownership="none">
2728- <type name="SubInterface" c:type="FooSubInterface*"/>
2729- </parameter>
2730- </parameters>
2731- </callback>
2732- </field>
2733- <field name="do_bar">
2734- <callback name="do_bar">
2735- <return-value transfer-ownership="none">
2736- <type name="none" c:type="void"/>
2737- </return-value>
2738- <parameters>
2739- <parameter name="self" transfer-ownership="none">
2740- <type name="SubInterface" c:type="FooSubInterface*"/>
2741- </parameter>
2742- </parameters>
2743- </callback>
2744- </field>
2745- <field name="do_moo">
2746- <callback name="do_moo">
2747- <return-value transfer-ownership="none">
2748- <type name="none" c:type="void"/>
2749- </return-value>
2750- <parameters>
2751- <parameter name="self" transfer-ownership="none">
2752- <type name="SubInterface" c:type="FooSubInterface*"/>
2753- </parameter>
2754- <parameter transfer-ownership="none">
2755- <type name="gint" c:type="int"/>
2756- </parameter>
2757- <parameter transfer-ownership="none">
2758- <type name="gpointer" c:type="gpointer"/>
2759- </parameter>
2760- </parameters>
2761- </callback>
2762- </field>
2763- <field name="do_baz">
2764- <callback name="do_baz">
2765- <return-value transfer-ownership="none">
2766- <type name="none" c:type="void"/>
2767- </return-value>
2768- <parameters>
2769- <parameter name="self" transfer-ownership="none">
2770- <type name="SubInterface" c:type="FooSubInterface*"/>
2771- </parameter>
2772- <parameter name="callback"
2773- transfer-ownership="none"
2774- scope="call"
2775- closure="2">
2776- <type name="GObject.Callback" c:type="GCallback"/>
2777- </parameter>
2778- <parameter name="data" transfer-ownership="none">
2779- <type name="gpointer" c:type="gpointer"/>
2780- </parameter>
2781- </parameters>
2782- </callback>
2783- </field>
2784- </record>
2785- <class name="Subobject"
2786- c:symbol-prefix="subobject"
2787- c:type="FooSubobject"
2788- parent="Object"
2789- abstract="1"
2790- glib:type-name="FooSubobject"
2791- glib:get-type="foo_subobject_get_type"
2792- glib:type-struct="SubobjectClass">
2793- <implements name="Interface"/>
2794- <constructor name="new" c:identifier="foo_subobject_new">
2795- <return-value transfer-ownership="full">
2796- <type name="Subobject" c:type="FooSubobject*"/>
2797- </return-value>
2798- </constructor>
2799- <field name="parent_instance">
2800- <type name="Object" c:type="FooObject"/>
2801- </field>
2802- </class>
2803- <record name="SubobjectClass"
2804- c:type="FooSubobjectClass"
2805- glib:is-gtype-struct-for="Subobject">
2806- <field name="parent_class">
2807- <type name="ObjectClass" c:type="FooObjectClass"/>
2808- </field>
2809- </record>
2810- <record name="ThingWithArray" c:type="FooThingWithArray">
2811- <field name="x" writable="1">
2812- <type name="gint" c:type="int"/>
2813- </field>
2814- <field name="y" writable="1">
2815- <type name="gint" c:type="int"/>
2816- </field>
2817- <field name="lines" writable="1">
2818- <array zero-terminated="0" c:type="gchar" fixed-size="80">
2819- <type name="gchar" c:type="char"/>
2820- </array>
2821- </field>
2822- <field name="data" writable="1">
2823- <type name="guint8" c:type="guchar*"/>
2824- </field>
2825- </record>
2826- <union name="Union" c:type="FooUnion">
2827- <field name="foo" writable="1">
2828- <type name="gint" c:type="int"/>
2829- </field>
2830- </union>
2831- <record name="UtilityStruct" c:type="FooUtilityStruct">
2832- <field name="bar" writable="1">
2833- <type name="Utility.Struct" c:type="UtilityStruct"/>
2834- </field>
2835- </record>
2836- <callback name="VarargsCallback"
2837- c:type="FooVarargsCallback"
2838- introspectable="0">
2839- <return-value transfer-ownership="none">
2840- <type name="none" c:type="void"/>
2841- </return-value>
2842- <parameters>
2843- <parameter name="param" transfer-ownership="none">
2844- <type name="utf8" c:type="char*"/>
2845- </parameter>
2846- <parameter transfer-ownership="none">
2847- <varargs>
2848- </varargs>
2849- </parameter>
2850- </parameters>
2851- </callback>
2852- <function name="async_ready_callback"
2853- c:identifier="foo_async_ready_callback">
2854- <return-value transfer-ownership="none">
2855- <type name="none" c:type="void"/>
2856- </return-value>
2857- <parameters>
2858- <parameter name="cancellable" transfer-ownership="none" allow-none="1">
2859- <type name="Gio.Cancellable" c:type="GCancellable*"/>
2860- </parameter>
2861- <parameter name="callback"
2862- transfer-ownership="none"
2863- scope="async"
2864- closure="2">
2865- <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
2866- </parameter>
2867- <parameter name="user_data" transfer-ownership="none">
2868- <type name="gpointer" c:type="gpointer"/>
2869- </parameter>
2870- </parameters>
2871- </function>
2872- <function name="destroy_notify_callback"
2873- c:identifier="foo_destroy_notify_callback">
2874- <return-value transfer-ownership="none">
2875- <type name="none" c:type="void"/>
2876- </return-value>
2877- <parameters>
2878- <parameter name="callback"
2879- transfer-ownership="none"
2880- scope="notified"
2881- closure="1"
2882- destroy="2">
2883- <type name="Callback" c:type="FooCallback"/>
2884- </parameter>
2885- <parameter name="data" transfer-ownership="none">
2886- <type name="gpointer" c:type="gpointer"/>
2887- </parameter>
2888- <parameter name="destroy" transfer-ownership="none" scope="async">
2889- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2890- </parameter>
2891- </parameters>
2892- </function>
2893- <function name="enum_type_method" c:identifier="foo_enum_type_method">
2894- <return-value transfer-ownership="none">
2895- <type name="gint" c:type="int"/>
2896- </return-value>
2897- <parameters>
2898- <parameter name="foo_enum" transfer-ownership="none">
2899- <type name="EnumType" c:type="FooEnumType"/>
2900- </parameter>
2901- </parameters>
2902- </function>
2903- <function name="enum_type_returnv" c:identifier="foo_enum_type_returnv">
2904- <return-value transfer-ownership="none">
2905- <type name="EnumType" c:type="FooEnumType"/>
2906- </return-value>
2907- <parameters>
2908- <parameter name="x" transfer-ownership="none">
2909- <type name="gint" c:type="int"/>
2910- </parameter>
2911- </parameters>
2912- </function>
2913- <function name="error_quark" c:identifier="foo_error_quark">
2914- <return-value transfer-ownership="none">
2915- <type name="GLib.Quark" c:type="GQuark"/>
2916- </return-value>
2917- </function>
2918- <function name="init" c:identifier="foo_init">
2919- <return-value transfer-ownership="none">
2920- <type name="gint" c:type="gint"/>
2921- </return-value>
2922- </function>
2923- <function name="method_external_references"
2924- c:identifier="foo_method_external_references">
2925- <return-value transfer-ownership="none">
2926- <type name="none" c:type="void"/>
2927- </return-value>
2928- <parameters>
2929- <parameter name="object" transfer-ownership="none">
2930- <type name="Utility.Object" c:type="UtilityObject*"/>
2931- </parameter>
2932- <parameter name="e" transfer-ownership="none">
2933- <type name="Utility.EnumType" c:type="UtilityEnumType"/>
2934- </parameter>
2935- <parameter name="f" transfer-ownership="none">
2936- <type name="Utility.FlagType" c:type="UtilityFlagType"/>
2937- </parameter>
2938- <parameter name="s" transfer-ownership="none">
2939- <type name="Utility.Struct" c:type="UtilityStruct"/>
2940- </parameter>
2941- </parameters>
2942- </function>
2943- <function name="rectangle_new"
2944- c:identifier="foo_rectangle_new"
2945- introspectable="0">
2946- <doc xml:whitespace="preserve">This is a C convenience constructor; we have to (skip)
2947-it because it's not a boxed type.</doc>
2948- <return-value>
2949- <type name="Rectangle" c:type="FooRectangle*"/>
2950- </return-value>
2951- <parameters>
2952- <parameter name="x" transfer-ownership="none">
2953- <type name="gint" c:type="int"/>
2954- </parameter>
2955- <parameter name="y" transfer-ownership="none">
2956- <type name="gint" c:type="int"/>
2957- </parameter>
2958- <parameter name="width" transfer-ownership="none">
2959- <type name="gint" c:type="int"/>
2960- </parameter>
2961- <parameter name="height" transfer-ownership="none">
2962- <type name="gint" c:type="int"/>
2963- </parameter>
2964- </parameters>
2965- </function>
2966- <function name="skip_me" c:identifier="foo_skip_me" introspectable="0">
2967- <doc xml:whitespace="preserve">Does something that's only interesting from C and should not be
2968-exposed to language bindings.</doc>
2969- <return-value transfer-ownership="none">
2970- <type name="none" c:type="void"/>
2971- </return-value>
2972- <parameters>
2973- <parameter name="fs" transfer-ownership="none">
2974- <doc xml:whitespace="preserve">a #FooSkippable</doc>
2975- <type name="Skippable" c:type="FooSkippable"/>
2976- </parameter>
2977- </parameters>
2978- </function>
2979- <function name="some_variant"
2980- c:identifier="foo_some_variant"
2981- introspectable="0">
2982- <return-value transfer-ownership="none">
2983- <type name="none" c:type="void"/>
2984- </return-value>
2985- <parameters>
2986- <parameter name="x" transfer-ownership="none">
2987- <type name="guint" c:type="guint"/>
2988- </parameter>
2989- <parameter name="args" transfer-ownership="none">
2990- <type name="va_list" c:type="va_list"/>
2991- </parameter>
2992- </parameters>
2993- </function>
2994- <function name="some_variant_ptr"
2995- c:identifier="foo_some_variant_ptr"
2996- introspectable="0">
2997- <return-value transfer-ownership="none">
2998- <type name="none" c:type="void"/>
2999- </return-value>
3000- <parameters>
3001- <parameter name="x" transfer-ownership="none">
3002- <type name="guint" c:type="guint"/>
3003- </parameter>
3004- <parameter name="args" transfer-ownership="none">
3005- <type name="va_list" c:type="va_list*"/>
3006- </parameter>
3007- </parameters>
3008- </function>
3009- <function name="test_array" c:identifier="foo_test_array">
3010- <return-value transfer-ownership="container">
3011- <array name="GLib.Array" c:type="GArray*">
3012- <type name="utf8"/>
3013- </array>
3014- </return-value>
3015- </function>
3016- <function name="test_const_char_param"
3017- c:identifier="foo_test_const_char_param">
3018- <return-value transfer-ownership="none">
3019- <type name="none" c:type="void"/>
3020- </return-value>
3021- <parameters>
3022- <parameter name="param" transfer-ownership="none">
3023- <type name="utf8" c:type="char*"/>
3024- </parameter>
3025- </parameters>
3026- </function>
3027- <function name="test_const_char_retval"
3028- c:identifier="foo_test_const_char_retval">
3029- <return-value transfer-ownership="none">
3030- <type name="utf8" c:type="char*"/>
3031- </return-value>
3032- </function>
3033- <function name="test_const_struct_param"
3034- c:identifier="foo_test_const_struct_param">
3035- <return-value transfer-ownership="none">
3036- <type name="none" c:type="void"/>
3037- </return-value>
3038- <parameters>
3039- <parameter name="param" transfer-ownership="none">
3040- <type name="Struct" c:type="FooStruct*"/>
3041- </parameter>
3042- </parameters>
3043- </function>
3044- <function name="test_const_struct_retval"
3045- c:identifier="foo_test_const_struct_retval">
3046- <return-value transfer-ownership="none">
3047- <type name="Struct" c:type="FooStruct*"/>
3048- </return-value>
3049- </function>
3050- <function name="test_string_array" c:identifier="foo_test_string_array">
3051- <return-value transfer-ownership="none">
3052- <type name="none" c:type="void"/>
3053- </return-value>
3054- <parameters>
3055- <parameter name="array" transfer-ownership="none">
3056- <array c:type="char**">
3057- <type name="utf8"/>
3058- </array>
3059- </parameter>
3060- </parameters>
3061- </function>
3062- <function name="test_string_array_with_g"
3063- c:identifier="foo_test_string_array_with_g">
3064- <return-value transfer-ownership="none">
3065- <type name="none" c:type="void"/>
3066- </return-value>
3067- <parameters>
3068- <parameter name="array" transfer-ownership="none">
3069- <array c:type="gchar**">
3070- <type name="utf8"/>
3071- </array>
3072- </parameter>
3073- </parameters>
3074- </function>
3075- <function name="test_unsigned_qualifier"
3076- c:identifier="foo_test_unsigned_qualifier">
3077- <return-value transfer-ownership="none">
3078- <type name="none" c:type="void"/>
3079- </return-value>
3080- <parameters>
3081- <parameter name="unsigned_param" transfer-ownership="none">
3082- <type name="guint" c:type="unsigned int"/>
3083- </parameter>
3084- </parameters>
3085- </function>
3086- <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
3087- <return-value transfer-ownership="none">
3088- <type name="none" c:type="void"/>
3089- </return-value>
3090- <parameters>
3091- <parameter name="unsigned_param" transfer-ownership="none">
3092- <type name="guint" c:type="unsigned"/>
3093- </parameter>
3094- </parameters>
3095- </function>
3096- <function name="test_varargs_callback"
3097- c:identifier="foo_test_varargs_callback"
3098- introspectable="0">
3099- <return-value transfer-ownership="none">
3100- <type name="none" c:type="void"/>
3101- </return-value>
3102- <parameters>
3103- <parameter name="i" transfer-ownership="none">
3104- <type name="gint" c:type="gint"/>
3105- </parameter>
3106- <parameter name="callback" transfer-ownership="none">
3107- <type name="VarargsCallback" c:type="FooVarargsCallback"/>
3108- </parameter>
3109- </parameters>
3110- </function>
3111- <function name="test_varargs_callback2"
3112- c:identifier="foo_test_varargs_callback2"
3113- introspectable="0">
3114- <return-value transfer-ownership="none">
3115- <type name="none" c:type="void"/>
3116- </return-value>
3117- <parameters>
3118- <parameter name="callback" transfer-ownership="none">
3119- <type name="VarargsCallback" c:type="FooVarargsCallback"/>
3120- </parameter>
3121- </parameters>
3122- </function>
3123- <function name="test_varargs_callback3"
3124- c:identifier="foo_test_varargs_callback3"
3125- introspectable="0">
3126- <return-value transfer-ownership="none">
3127- <type name="none" c:type="void"/>
3128- </return-value>
3129- <parameters>
3130- <parameter name="callback" transfer-ownership="none">
3131- <type name="VarargsCallback" c:type="FooVarargsCallback"/>
3132- </parameter>
3133- <parameter name="callback2" transfer-ownership="none">
3134- <type name="VarargsCallback" c:type="FooVarargsCallback"/>
3135- </parameter>
3136- </parameters>
3137- </function>
3138- </namespace>
3139-</repository>
3140
3141=== removed file '.pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Regress-1.0-expected.gir'
3142--- .pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Regress-1.0-expected.gir 2011-01-21 11:20:57 +0000
3143+++ .pc/0001-Preserve-the-c-type-of-array-elements.patch/tests/scanner/Regress-1.0-expected.gir 1970-01-01 00:00:00 +0000
3144@@ -1,2497 +0,0 @@
3145-<?xml version="1.0"?>
3146-<!-- This file was automatically generated from C sources - DO NOT EDIT!
3147-To affect the contents of this file, edit the original C definitions,
3148-and/or use gtk-doc annotations. -->
3149-<repository version="1.2"
3150- xmlns="http://www.gtk.org/introspection/core/1.0"
3151- xmlns:c="http://www.gtk.org/introspection/c/1.0"
3152- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
3153- <include name="GLib" version="2.0"/>
3154- <include name="GObject" version="2.0"/>
3155- <include name="Gio" version="2.0"/>
3156- <include name="cairo" version="1.0"/>
3157- <c:include name="regress.h"/>
3158- <namespace name="Regress"
3159- version="1.0"
3160- shared-library="libregress.so"
3161- c:identifier-prefixes="Regress"
3162- c:symbol-prefixes="regress">
3163- <alias name="IntSet" c:type="RegressIntSet" introspectable="0">
3164- <doc xml:whitespace="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
3165- <type name="Intset" c:type="RegressIntset"/>
3166- </alias>
3167- <alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
3168- <doc xml:whitespace="preserve">Typedef'd GPtrArray for some reason</doc>
3169- <type name="GLib.PtrArray" c:type="GPtrArray"/>
3170- </alias>
3171- <alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
3172- <doc xml:whitespace="preserve">Typedef'd va_list for additional reasons</doc>
3173- <type name="va_list" c:type="va_list"/>
3174- </alias>
3175- <constant name="DOUBLE_CONSTANT" value="44.220000">
3176- <type name="gdouble" c:type="gdouble"/>
3177- </constant>
3178- <constant name="INT_CONSTANT" value="4422">
3179- <type name="gint" c:type="gint"/>
3180- </constant>
3181- <record name="Intset" c:type="RegressIntset" disguised="1">
3182- <doc xml:whitespace="preserve">Like telepathy-glib's TpIntset.</doc>
3183- </record>
3184- <constant name="Mixed_Case_Constant" value="4423">
3185- <type name="gint" c:type="gint"/>
3186- </constant>
3187- <constant name="STRING_CONSTANT" value="Some String">
3188- <type name="utf8" c:type="gchar*"/>
3189- </constant>
3190- <record name="SkippedStructure"
3191- c:type="RegressSkippedStructure"
3192- introspectable="0">
3193- <doc xml:whitespace="preserve">This should be skipped, and moreover, all function which
3194-use it should be.</doc>
3195- <field name="x" writable="1">
3196- <type name="gint" c:type="int"/>
3197- </field>
3198- <field name="v" writable="1">
3199- <type name="gdouble" c:type="double"/>
3200- </field>
3201- </record>
3202- <record name="TestBoxed"
3203- c:type="RegressTestBoxed"
3204- glib:type-name="RegressTestBoxed"
3205- glib:get-type="regress_test_boxed_get_type"
3206- c:symbol-prefix="test_boxed">
3207- <field name="some_int8" writable="1">
3208- <type name="gint8" c:type="gint8"/>
3209- </field>
3210- <field name="nested_a" writable="1">
3211- <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
3212- </field>
3213- <field name="priv" writable="1">
3214- <type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
3215- </field>
3216- <constructor name="new" c:identifier="regress_test_boxed_new">
3217- <return-value transfer-ownership="full">
3218- <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3219- </return-value>
3220- </constructor>
3221- <constructor name="new_alternative_constructor1"
3222- c:identifier="regress_test_boxed_new_alternative_constructor1">
3223- <return-value transfer-ownership="full">
3224- <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3225- </return-value>
3226- <parameters>
3227- <parameter name="i" transfer-ownership="none">
3228- <type name="gint" c:type="int"/>
3229- </parameter>
3230- </parameters>
3231- </constructor>
3232- <constructor name="new_alternative_constructor2"
3233- c:identifier="regress_test_boxed_new_alternative_constructor2">
3234- <return-value transfer-ownership="full">
3235- <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3236- </return-value>
3237- <parameters>
3238- <parameter name="i" transfer-ownership="none">
3239- <type name="gint" c:type="int"/>
3240- </parameter>
3241- <parameter name="j" transfer-ownership="none">
3242- <type name="gint" c:type="int"/>
3243- </parameter>
3244- </parameters>
3245- </constructor>
3246- <constructor name="new_alternative_constructor3"
3247- c:identifier="regress_test_boxed_new_alternative_constructor3">
3248- <return-value transfer-ownership="full">
3249- <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3250- </return-value>
3251- <parameters>
3252- <parameter name="s" transfer-ownership="none">
3253- <type name="utf8" c:type="char*"/>
3254- </parameter>
3255- </parameters>
3256- </constructor>
3257- <method name="copy" c:identifier="regress_test_boxed_copy">
3258- <return-value transfer-ownership="full">
3259- <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3260- </return-value>
3261- </method>
3262- <method name="equals" c:identifier="regress_test_boxed_equals">
3263- <return-value transfer-ownership="none">
3264- <type name="gboolean" c:type="gboolean"/>
3265- </return-value>
3266- <parameters>
3267- <parameter name="other" transfer-ownership="none">
3268- <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3269- </parameter>
3270- </parameters>
3271- </method>
3272- </record>
3273- <record name="TestBoxedPrivate"
3274- c:type="RegressTestBoxedPrivate"
3275- disguised="1">
3276- </record>
3277- <callback name="TestCallback" c:type="RegressTestCallback">
3278- <return-value transfer-ownership="none">
3279- <type name="gint" c:type="int"/>
3280- </return-value>
3281- </callback>
3282- <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
3283- <return-value transfer-ownership="none">
3284- <type name="gint" c:type="int"/>
3285- </return-value>
3286- <parameters>
3287- <parameter name="foo" transfer-ownership="none">
3288- <doc xml:whitespace="preserve">the investment rate</doc>
3289- <type name="gint" c:type="int"/>
3290- </parameter>
3291- <parameter name="bar" transfer-ownership="none">
3292- <doc xml:whitespace="preserve">how much money</doc>
3293- <type name="gdouble" c:type="double"/>
3294- </parameter>
3295- <parameter name="path" transfer-ownership="none">
3296- <doc xml:whitespace="preserve">Path to file</doc>
3297- <type name="filename"/>
3298- </parameter>
3299- </parameters>
3300- </callback>
3301- <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
3302- <return-value transfer-ownership="none">
3303- <type name="gint" c:type="int"/>
3304- </return-value>
3305- <parameters>
3306- <parameter name="user_data" transfer-ownership="none" closure="0">
3307- <type name="gpointer" c:type="gpointer"/>
3308- </parameter>
3309- </parameters>
3310- </callback>
3311- <enumeration name="TestEnum"
3312- glib:type-name="RegressTestEnum"
3313- glib:get-type="regress_test_enum_get_type"
3314- c:type="RegressTestEnum">
3315- <member name="value1"
3316- value="0"
3317- c:identifier="REGRESS_TEST_VALUE1"
3318- glib:nick="value1"/>
3319- <member name="value2"
3320- value="1"
3321- c:identifier="REGRESS_TEST_VALUE2"
3322- glib:nick="value2"/>
3323- <member name="value3"
3324- value="-1"
3325- c:identifier="REGRESS_TEST_VALUE3"
3326- glib:nick="value3"/>
3327- </enumeration>
3328- <enumeration name="TestEnumUnsigned"
3329- glib:type-name="RegressTestEnumUnsigned"
3330- glib:get-type="regress_test_enum_unsigned_get_type"
3331- c:type="RegressTestEnumUnsigned">
3332- <member name="value1"
3333- value="1"
3334- c:identifier="REGRESS_TEST_UNSIGNED_VALUE1"
3335- glib:nick="value1"/>
3336- <member name="value2"
3337- value="2147483648"
3338- c:identifier="REGRESS_TEST_UNSIGNED_VALUE2"
3339- glib:nick="value2"/>
3340- </enumeration>
3341- <bitfield name="TestFlags"
3342- glib:type-name="RegressTestFlags"
3343- glib:get-type="regress_test_flags_get_type"
3344- c:type="RegressTestFlags">
3345- <member name="flag1"
3346- value="1"
3347- c:identifier="TEST_FLAG1"
3348- glib:nick="flag1"/>
3349- <member name="flag2"
3350- value="2"
3351- c:identifier="TEST_FLAG2"
3352- glib:nick="flag2"/>
3353- <member name="flag3"
3354- value="4"
3355- c:identifier="TEST_FLAG3"
3356- glib:nick="flag3"/>
3357- </bitfield>
3358- <class name="TestFloating"
3359- c:symbol-prefix="test_floating"
3360- c:type="RegressTestFloating"
3361- parent="GObject.InitiallyUnowned"
3362- glib:type-name="RegressTestFloating"
3363- glib:get-type="regress_test_floating_get_type"
3364- glib:type-struct="TestFloatingClass">
3365- <constructor name="new" c:identifier="regress_test_floating_new">
3366- <return-value transfer-ownership="none">
3367- <doc xml:whitespace="preserve">A new floating #RegressTestFloating</doc>
3368- <type name="TestFloating" c:type="RegressTestFloating*"/>
3369- </return-value>
3370- </constructor>
3371- <field name="parent_instance">
3372- <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
3373- </field>
3374- </class>
3375- <record name="TestFloatingClass"
3376- c:type="RegressTestFloatingClass"
3377- glib:is-gtype-struct-for="TestFloating">
3378- <field name="parent_class">
3379- <type name="GObject.InitiallyUnownedClass"
3380- c:type="GInitiallyUnownedClass"/>
3381- </field>
3382- </record>
3383- <class name="TestFundamentalObject"
3384- c:symbol-prefix="test_fundamental_object"
3385- c:type="RegressTestFundamentalObject"
3386- abstract="1"
3387- glib:type-name="RegressTestFundamentalObject"
3388- glib:get-type="regress_test_fundamental_object_get_type"
3389- glib:type-struct="TestFundamentalObjectClass"
3390- glib:fundamental="1"
3391- glib:ref-func="regress_test_fundamental_object_ref"
3392- glib:unref-func="regress_test_fundamental_object_unref"
3393- glib:set-value-func="regress_test_value_set_fundamental_object"
3394- glib:get-value-func="regress_test_value_get_fundamental_object">
3395- <method name="ref" c:identifier="regress_test_fundamental_object_ref">
3396- <return-value transfer-ownership="full">
3397- <doc xml:whitespace="preserve">A new #RegressTestFundamentalObject</doc>
3398- <type name="TestFundamentalObject"
3399- c:type="RegressTestFundamentalObject*"/>
3400- </return-value>
3401- </method>
3402- <method name="unref"
3403- c:identifier="regress_test_fundamental_object_unref">
3404- <return-value transfer-ownership="none">
3405- <type name="none" c:type="void"/>
3406- </return-value>
3407- </method>
3408- <field name="instance">
3409- <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
3410- </field>
3411- <field name="refcount">
3412- <type name="gint" c:type="gint"/>
3413- </field>
3414- <field name="flags">
3415- <type name="guint" c:type="guint"/>
3416- </field>
3417- </class>
3418- <record name="TestFundamentalObjectClass"
3419- c:type="RegressTestFundamentalObjectClass"
3420- glib:is-gtype-struct-for="TestFundamentalObject">
3421- <field name="type_class">
3422- <type name="GObject.TypeClass" c:type="GTypeClass"/>
3423- </field>
3424- <field name="copy">
3425- <type name="TestFundamentalObjectCopyFunction"
3426- c:type="RegressTestFundamentalObjectCopyFunction"/>
3427- </field>
3428- <field name="finalize">
3429- <type name="TestFundamentalObjectFinalizeFunction"
3430- c:type="RegressTestFundamentalObjectFinalizeFunction"/>
3431- </field>
3432- </record>
3433- <callback name="TestFundamentalObjectCopyFunction"
3434- c:type="RegressTestFundamentalObjectCopyFunction">
3435- <return-value transfer-ownership="full">
3436- <type name="TestFundamentalObject"
3437- c:type="RegressTestFundamentalObject*"/>
3438- </return-value>
3439- <parameters>
3440- <parameter name="obj" transfer-ownership="none">
3441- <type name="TestFundamentalObject"
3442- c:type="RegressTestFundamentalObject*"/>
3443- </parameter>
3444- </parameters>
3445- </callback>
3446- <callback name="TestFundamentalObjectFinalizeFunction"
3447- c:type="RegressTestFundamentalObjectFinalizeFunction">
3448- <return-value transfer-ownership="none">
3449- <type name="none" c:type="void"/>
3450- </return-value>
3451- <parameters>
3452- <parameter name="obj" transfer-ownership="none">
3453- <type name="TestFundamentalObject"
3454- c:type="RegressTestFundamentalObject*"/>
3455- </parameter>
3456- </parameters>
3457- </callback>
3458- <class name="TestFundamentalSubObject"
3459- c:symbol-prefix="test_fundamental_sub_object"
3460- c:type="RegressTestFundamentalSubObject"
3461- parent="TestFundamentalObject"
3462- glib:type-name="RegressTestFundamentalSubObject"
3463- glib:get-type="regress_test_fundamental_sub_object_get_type"
3464- glib:type-struct="TestFundamentalSubObjectClass"
3465- glib:fundamental="1">
3466- <constructor name="new"
3467- c:identifier="regress_test_fundamental_sub_object_new">
3468- <return-value transfer-ownership="full">
3469- <type name="TestFundamentalSubObject"
3470- c:type="RegressTestFundamentalSubObject*"/>
3471- </return-value>
3472- <parameters>
3473- <parameter name="data" transfer-ownership="none">
3474- <type name="utf8" c:type="char*"/>
3475- </parameter>
3476- </parameters>
3477- </constructor>
3478- <field name="fundamental_object">
3479- <type name="TestFundamentalObject"
3480- c:type="RegressTestFundamentalObject"/>
3481- </field>
3482- <field name="data">
3483- <type name="utf8" c:type="char*"/>
3484- </field>
3485- </class>
3486- <record name="TestFundamentalSubObjectClass"
3487- c:type="RegressTestFundamentalSubObjectClass"
3488- glib:is-gtype-struct-for="TestFundamentalSubObject">
3489- <field name="fundamental_object_class">
3490- <type name="TestFundamentalObjectClass"
3491- c:type="RegressTestFundamentalObjectClass"/>
3492- </field>
3493- </record>
3494- <interface name="TestInterface"
3495- c:symbol-prefix="test_interface"
3496- c:type="RegressTestInterface"
3497- glib:type-name="RegressTestInterface"
3498- glib:get-type="regress_test_interface_get_type"
3499- glib:type-struct="TestInterfaceIface">
3500- </interface>
3501- <record name="TestInterfaceIface"
3502- c:type="RegressTestInterfaceIface"
3503- glib:is-gtype-struct-for="TestInterface">
3504- <field name="base_iface">
3505- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
3506- </field>
3507- </record>
3508- <class name="TestObj"
3509- c:symbol-prefix="test_obj"
3510- c:type="RegressTestObj"
3511- parent="GObject.Object"
3512- glib:type-name="RegressTestObj"
3513- glib:get-type="regress_test_obj_get_type"
3514- glib:type-struct="TestObjClass">
3515- <constructor name="new_callback"
3516- c:identifier="regress_test_obj_new_callback">
3517- <return-value transfer-ownership="full">
3518- <type name="TestObj" c:type="RegressTestObj*"/>
3519- </return-value>
3520- <parameters>
3521- <parameter name="callback"
3522- transfer-ownership="none"
3523- scope="notified"
3524- closure="1"
3525- destroy="2">
3526- <type name="TestCallbackUserData"
3527- c:type="RegressTestCallbackUserData"/>
3528- </parameter>
3529- <parameter name="user_data" transfer-ownership="none">
3530- <type name="gpointer" c:type="gpointer"/>
3531- </parameter>
3532- <parameter name="notify" transfer-ownership="none" scope="async">
3533- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
3534- </parameter>
3535- </parameters>
3536- </constructor>
3537- <constructor name="new_from_file"
3538- c:identifier="regress_test_obj_new_from_file"
3539- throws="1">
3540- <return-value transfer-ownership="full">
3541- <type name="TestObj" c:type="RegressTestObj*"/>
3542- </return-value>
3543- <parameters>
3544- <parameter name="x" transfer-ownership="none">
3545- <type name="utf8" c:type="char*"/>
3546- </parameter>
3547- </parameters>
3548- </constructor>
3549- <function name="null_out" c:identifier="regress_test_obj_null_out">
3550- <return-value transfer-ownership="none">
3551- <type name="none" c:type="void"/>
3552- </return-value>
3553- <parameters>
3554- <parameter name="obj"
3555- direction="out"
3556- caller-allocates="0"
3557- transfer-ownership="full"
3558- allow-none="1">
3559- <doc xml:whitespace="preserve">A #RegressTestObj</doc>
3560- <type name="TestObj" c:type="RegressTestObj**"/>
3561- </parameter>
3562- </parameters>
3563- </function>
3564- <function name="static_method"
3565- c:identifier="regress_test_obj_static_method">
3566- <return-value transfer-ownership="none">
3567- <type name="gdouble" c:type="double"/>
3568- </return-value>
3569- <parameters>
3570- <parameter name="x" transfer-ownership="none">
3571- <type name="gint" c:type="int"/>
3572- </parameter>
3573- </parameters>
3574- </function>
3575- <function name="static_method_callback"
3576- c:identifier="regress_test_obj_static_method_callback">
3577- <return-value transfer-ownership="none">
3578- <type name="none" c:type="void"/>
3579- </return-value>
3580- <parameters>
3581- <parameter name="callback"
3582- transfer-ownership="none"
3583- allow-none="1"
3584- scope="call">
3585- <type name="TestCallback" c:type="RegressTestCallback"/>
3586- </parameter>
3587- </parameters>
3588- </function>
3589- <virtual-method name="matrix" invoker="do_matrix">
3590- <doc xml:whitespace="preserve">This method is virtual. Notably its name differs from the virtual
3591-slot name, which makes it useful for testing bindings handle this
3592-case.</doc>
3593- <return-value transfer-ownership="none">
3594- <type name="gint" c:type="int"/>
3595- </return-value>
3596- <parameters>
3597- <parameter name="somestr" transfer-ownership="none">
3598- <doc xml:whitespace="preserve">Meaningless string</doc>
3599- <type name="utf8" c:type="char*"/>
3600- </parameter>
3601- </parameters>
3602- </virtual-method>
3603- <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
3604- <doc xml:whitespace="preserve">This method is virtual. Notably its name differs from the virtual
3605-slot name, which makes it useful for testing bindings handle this
3606-case.</doc>
3607- <return-value transfer-ownership="none">
3608- <type name="gint" c:type="int"/>
3609- </return-value>
3610- <parameters>
3611- <parameter name="somestr" transfer-ownership="none">
3612- <doc xml:whitespace="preserve">Meaningless string</doc>
3613- <type name="utf8" c:type="char*"/>
3614- </parameter>
3615- </parameters>
3616- </method>
3617- <method name="instance_method"
3618- c:identifier="regress_test_obj_instance_method">
3619- <return-value transfer-ownership="none">
3620- <type name="gint" c:type="int"/>
3621- </return-value>
3622- </method>
3623- <method name="instance_method_callback"
3624- c:identifier="regress_test_obj_instance_method_callback">
3625- <return-value transfer-ownership="none">
3626- <type name="none" c:type="void"/>
3627- </return-value>
3628- <parameters>
3629- <parameter name="callback"
3630- transfer-ownership="none"
3631- allow-none="1"
3632- scope="call">
3633- <type name="TestCallback" c:type="RegressTestCallback"/>
3634- </parameter>
3635- </parameters>
3636- </method>
3637- <method name="set_bare" c:identifier="regress_test_obj_set_bare">
3638- <return-value transfer-ownership="none">
3639- <type name="none" c:type="void"/>
3640- </return-value>
3641- <parameters>
3642- <parameter name="bare" transfer-ownership="none" allow-none="1">
3643- <type name="GObject.Object" c:type="GObject*"/>
3644- </parameter>
3645- </parameters>
3646- </method>
3647- <method name="torture_signature_0"
3648- c:identifier="regress_test_obj_torture_signature_0">
3649- <return-value transfer-ownership="none">
3650- <type name="none" c:type="void"/>
3651- </return-value>
3652- <parameters>
3653- <parameter name="x" transfer-ownership="none">
3654- <type name="gint" c:type="int"/>
3655- </parameter>
3656- <parameter name="y"
3657- direction="out"
3658- caller-allocates="0"
3659- transfer-ownership="full">
3660- <type name="gdouble" c:type="double*"/>
3661- </parameter>
3662- <parameter name="z"
3663- direction="out"
3664- caller-allocates="0"
3665- transfer-ownership="full">
3666- <type name="gint" c:type="int*"/>
3667- </parameter>
3668- <parameter name="foo" transfer-ownership="none">
3669- <type name="utf8" c:type="char*"/>
3670- </parameter>
3671- <parameter name="q"
3672- direction="out"
3673- caller-allocates="0"
3674- transfer-ownership="full">
3675- <type name="gint" c:type="int*"/>
3676- </parameter>
3677- <parameter name="m" transfer-ownership="none">
3678- <type name="guint" c:type="guint"/>
3679- </parameter>
3680- </parameters>
3681- </method>
3682- <method name="torture_signature_1"
3683- c:identifier="regress_test_obj_torture_signature_1"
3684- throws="1">
3685- <doc xml:whitespace="preserve">This function throws an error if m is odd.</doc>
3686- <return-value transfer-ownership="none">
3687- <type name="gboolean" c:type="gboolean"/>
3688- </return-value>
3689- <parameters>
3690- <parameter name="x" transfer-ownership="none">
3691- <type name="gint" c:type="int"/>
3692- </parameter>
3693- <parameter name="y"
3694- direction="out"
3695- caller-allocates="0"
3696- transfer-ownership="full">
3697- <type name="gdouble" c:type="double*"/>
3698- </parameter>
3699- <parameter name="z"
3700- direction="out"
3701- caller-allocates="0"
3702- transfer-ownership="full">
3703- <type name="gint" c:type="int*"/>
3704- </parameter>
3705- <parameter name="foo" transfer-ownership="none">
3706- <type name="utf8" c:type="char*"/>
3707- </parameter>
3708- <parameter name="q"
3709- direction="out"
3710- caller-allocates="0"
3711- transfer-ownership="full">
3712- <type name="gint" c:type="int*"/>
3713- </parameter>
3714- <parameter name="m" transfer-ownership="none">
3715- <type name="guint" c:type="guint"/>
3716- </parameter>
3717- </parameters>
3718- </method>
3719- <property name="bare" writable="1" transfer-ownership="none">
3720- <type name="GObject.Object"/>
3721- </property>
3722- <property name="boxed" writable="1" transfer-ownership="none">
3723- <type name="TestBoxed"/>
3724- </property>
3725- <property name="double" writable="1" transfer-ownership="none">
3726- <type name="gdouble"/>
3727- </property>
3728- <property name="float" writable="1" transfer-ownership="none">
3729- <type name="gfloat"/>
3730- </property>
3731- <property name="hash-table" writable="1" transfer-ownership="container">
3732- <type name="GLib.HashTable">
3733- <type name="utf8"/>
3734- <type name="gint8"/>
3735- </type>
3736- </property>
3737- <property name="int" writable="1" transfer-ownership="none">
3738- <type name="gint"/>
3739- </property>
3740- <property name="list" writable="1" transfer-ownership="none">
3741- <type name="GLib.List">
3742- <type name="utf8"/>
3743- </type>
3744- </property>
3745- <property name="string" writable="1" transfer-ownership="none">
3746- <type name="utf8"/>
3747- </property>
3748- <field name="parent_instance">
3749- <type name="GObject.Object" c:type="GObject"/>
3750- </field>
3751- <field name="bare">
3752- <type name="GObject.Object" c:type="GObject*"/>
3753- </field>
3754- <field name="boxed">
3755- <type name="TestBoxed" c:type="RegressTestBoxed*"/>
3756- </field>
3757- <field name="hash_table">
3758- <type name="GLib.HashTable" c:type="GHashTable*">
3759- <type name="gpointer" c:type="gpointer"/>
3760- <type name="gpointer" c:type="gpointer"/>
3761- </type>
3762- </field>
3763- <field name="list">
3764- <type name="GLib.List" c:type="GList*">
3765- <type name="gpointer" c:type="gpointer"/>
3766- </type>
3767- </field>
3768- <field name="some_int8">
3769- <type name="gint8" c:type="gint8"/>
3770- </field>
3771- <field name="some_float">
3772- <type name="gfloat" c:type="float"/>
3773- </field>
3774- <field name="some_double">
3775- <type name="gdouble" c:type="double"/>
3776- </field>
3777- <field name="string">
3778- <type name="utf8" c:type="char*"/>
3779- </field>
3780- <glib:signal name="sig-with-array-prop">
3781- <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's</doc>
3782- <return-value transfer-ownership="none">
3783- <type name="none"/>
3784- </return-value>
3785- <parameters>
3786- <parameter name="arr" transfer-ownership="none">
3787- <doc xml:whitespace="preserve">numbers</doc>
3788- <array name="GLib.Array">
3789- <type name="guint"/>
3790- </array>
3791- </parameter>
3792- </parameters>
3793- </glib:signal>
3794- <glib:signal name="sig-with-hash-prop">
3795- <doc xml:whitespace="preserve">This test signal is like TelepathyGlib's
3796-TpAccount::status-changed</doc>
3797- <return-value transfer-ownership="none">
3798- <type name="none"/>
3799- </return-value>
3800- <parameters>
3801- <parameter name="hash" transfer-ownership="none">
3802- <type name="GLib.HashTable">
3803- <type name="utf8"/>
3804- <type name="GObject.Value"/>
3805- </type>
3806- </parameter>
3807- </parameters>
3808- </glib:signal>
3809- <glib:signal name="sig-with-strv">
3810- <doc xml:whitespace="preserve">Test GStrv as a param.</doc>
3811- <return-value transfer-ownership="none">
3812- <type name="none"/>
3813- </return-value>
3814- <parameters>
3815- <parameter name="strs" transfer-ownership="none">
3816- <doc xml:whitespace="preserve">strings</doc>
3817- <array>
3818- <type name="utf8"/>
3819- </array>
3820- </parameter>
3821- </parameters>
3822- </glib:signal>
3823- <glib:signal name="test">
3824- <return-value transfer-ownership="none">
3825- <type name="none"/>
3826- </return-value>
3827- </glib:signal>
3828- <glib:signal name="test-with-static-scope-arg">
3829- <return-value transfer-ownership="none">
3830- <type name="none"/>
3831- </return-value>
3832- <parameters>
3833- <parameter name="object" transfer-ownership="none">
3834- <type name="TestSimpleBoxedA"/>
3835- </parameter>
3836- </parameters>
3837- </glib:signal>
3838- </class>
3839- <record name="TestObjClass"
3840- c:type="RegressTestObjClass"
3841- glib:is-gtype-struct-for="TestObj">
3842- <field name="parent_class">
3843- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
3844- </field>
3845- <field name="matrix">
3846- <callback name="matrix">
3847- <return-value transfer-ownership="none">
3848- <type name="gint" c:type="int"/>
3849- </return-value>
3850- <parameters>
3851- <parameter name="obj" transfer-ownership="none">
3852- <type name="TestObj" c:type="RegressTestObj*"/>
3853- </parameter>
3854- <parameter name="somestr" transfer-ownership="none">
3855- <doc xml:whitespace="preserve">Meaningless string</doc>
3856- <type name="utf8" c:type="char*"/>
3857- </parameter>
3858- </parameters>
3859- </callback>
3860- </field>
3861- <field name="test_signal">
3862- <type name="guint" c:type="guint"/>
3863- </field>
3864- <field name="test_signal_with_static_scope_arg">
3865- <type name="guint" c:type="guint"/>
3866- </field>
3867- <field name="_regress_reserved1" introspectable="0">
3868- <callback name="_regress_reserved1">
3869- <return-value transfer-ownership="none">
3870- <type name="none" c:type="void"/>
3871- </return-value>
3872- </callback>
3873- </field>
3874- <field name="_regress_reserved2" introspectable="0">
3875- <callback name="_regress_reserved2">
3876- <return-value transfer-ownership="none">
3877- <type name="none" c:type="void"/>
3878- </return-value>
3879- </callback>
3880- </field>
3881- </record>
3882- <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
3883- <member name="public_enum_before"
3884- value="1"
3885- c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE"/>
3886- <member name="public_enum_after"
3887- value="4"
3888- c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER"/>
3889- </bitfield>
3890- <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
3891- <field name="this_is_public_before" writable="1">
3892- <type name="gint" c:type="gint"/>
3893- </field>
3894- <field name="this_is_private" readable="0" private="1">
3895- <type name="gint" c:type="gint"/>
3896- </field>
3897- <field name="this_is_public_after" writable="1">
3898- <type name="gint" c:type="gint"/>
3899- </field>
3900- </record>
3901- <record name="TestSimpleBoxedA"
3902- c:type="RegressTestSimpleBoxedA"
3903- glib:type-name="RegressTestSimpleBoxedA"
3904- glib:get-type="regress_test_simple_boxed_a_get_type"
3905- c:symbol-prefix="test_simple_boxed_a">
3906- <field name="some_int" writable="1">
3907- <type name="gint" c:type="gint"/>
3908- </field>
3909- <field name="some_int8" writable="1">
3910- <type name="gint8" c:type="gint8"/>
3911- </field>
3912- <field name="some_double" writable="1">
3913- <type name="gdouble" c:type="gdouble"/>
3914- </field>
3915- <field name="some_enum" writable="1">
3916- <type name="TestEnum" c:type="RegressTestEnum"/>
3917- </field>
3918- <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
3919- <return-value transfer-ownership="full">
3920- <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
3921- </return-value>
3922- </method>
3923- <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
3924- <return-value transfer-ownership="none">
3925- <type name="gboolean" c:type="gboolean"/>
3926- </return-value>
3927- <parameters>
3928- <parameter name="other_a" transfer-ownership="none">
3929- <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
3930- </parameter>
3931- </parameters>
3932- </method>
3933- </record>
3934- <record name="TestSimpleBoxedB"
3935- c:type="RegressTestSimpleBoxedB"
3936- glib:type-name="RegressTestSimpleBoxedB"
3937- glib:get-type="regress_test_simple_boxed_b_get_type"
3938- c:symbol-prefix="test_simple_boxed_b">
3939- <field name="some_int8" writable="1">
3940- <type name="gint8" c:type="gint8"/>
3941- </field>
3942- <field name="nested_a" writable="1">
3943- <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
3944- </field>
3945- <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
3946- <return-value transfer-ownership="full">
3947- <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
3948- </return-value>
3949- </method>
3950- </record>
3951- <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
3952- <return-value transfer-ownership="none">
3953- <type name="none" c:type="void"/>
3954- </return-value>
3955- </callback>
3956- <record name="TestStructA" c:type="RegressTestStructA">
3957- <field name="some_int" writable="1">
3958- <type name="gint" c:type="gint"/>
3959- </field>
3960- <field name="some_int8" writable="1">
3961- <type name="gint8" c:type="gint8"/>
3962- </field>
3963- <field name="some_double" writable="1">
3964- <type name="gdouble" c:type="gdouble"/>
3965- </field>
3966- <field name="some_enum" writable="1">
3967- <type name="TestEnum" c:type="RegressTestEnum"/>
3968- </field>
3969- <method name="clone" c:identifier="regress_test_struct_a_clone">
3970- <doc xml:whitespace="preserve">Make a copy of a RegressTestStructA</doc>
3971- <return-value transfer-ownership="none">
3972- <type name="none" c:type="void"/>
3973- </return-value>
3974- <parameters>
3975- <parameter name="a_out"
3976- direction="out"
3977- caller-allocates="1"
3978- transfer-ownership="none">
3979- <doc xml:whitespace="preserve">the cloned structure</doc>
3980- <type name="TestStructA" c:type="RegressTestStructA*"/>
3981- </parameter>
3982- </parameters>
3983- </method>
3984- </record>
3985- <record name="TestStructB" c:type="RegressTestStructB">
3986- <field name="some_int8" writable="1">
3987- <type name="gint8" c:type="gint8"/>
3988- </field>
3989- <field name="nested_a" writable="1">
3990- <type name="TestStructA" c:type="RegressTestStructA"/>
3991- </field>
3992- <method name="clone" c:identifier="regress_test_struct_b_clone">
3993- <doc xml:whitespace="preserve">Make a copy of a RegressTestStructB</doc>
3994- <return-value transfer-ownership="none">
3995- <type name="none" c:type="void"/>
3996- </return-value>
3997- <parameters>
3998- <parameter name="b_out"
3999- direction="out"
4000- caller-allocates="1"
4001- transfer-ownership="none">
4002- <doc xml:whitespace="preserve">the cloned structure</doc>
4003- <type name="TestStructB" c:type="RegressTestStructB*"/>
4004- </parameter>
4005- </parameters>
4006- </method>
4007- </record>
4008- <class name="TestSubObj"
4009- c:symbol-prefix="test_sub_obj"
4010- c:type="RegressTestSubObj"
4011- parent="TestObj"
4012- glib:type-name="RegressTestSubObj"
4013- glib:get-type="regress_test_sub_obj_get_type"
4014- glib:type-struct="TestSubObjClass">
4015- <constructor name="new" c:identifier="regress_test_sub_obj_new">
4016- <return-value transfer-ownership="full">
4017- <type name="TestObj" c:type="RegressTestObj*"/>
4018- </return-value>
4019- </constructor>
4020- <method name="instance_method"
4021- c:identifier="regress_test_sub_obj_instance_method">
4022- <return-value transfer-ownership="none">
4023- <type name="gint" c:type="int"/>
4024- </return-value>
4025- </method>
4026- <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
4027- <return-value transfer-ownership="none">
4028- <type name="none" c:type="void"/>
4029- </return-value>
4030- </method>
4031- <field name="parent_instance">
4032- <type name="TestObj" c:type="RegressTestObj"/>
4033- </field>
4034- </class>
4035- <record name="TestSubObjClass"
4036- c:type="RegressTestSubObjClass"
4037- glib:is-gtype-struct-for="TestSubObj">
4038- <field name="parent_class">
4039- <type name="TestObjClass" c:type="RegressTestObjClass"/>
4040- </field>
4041- </record>
4042- <class name="TestWi8021x"
4043- c:symbol-prefix="test_wi_802_1x"
4044- c:type="RegressTestWi8021x"
4045- parent="GObject.Object"
4046- glib:type-name="RegressTestWi8021x"
4047- glib:get-type="regress_test_wi_802_1x_get_type"
4048- glib:type-struct="TestWi8021xClass">
4049- <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
4050- <return-value transfer-ownership="full">
4051- <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
4052- </return-value>
4053- </constructor>
4054- <function name="static_method"
4055- c:identifier="regress_test_wi_802_1x_static_method">
4056- <return-value transfer-ownership="none">
4057- <type name="gint" c:type="int"/>
4058- </return-value>
4059- <parameters>
4060- <parameter name="x" transfer-ownership="none">
4061- <type name="gint" c:type="int"/>
4062- </parameter>
4063- </parameters>
4064- </function>
4065- <method name="get_testbool"
4066- c:identifier="regress_test_wi_802_1x_get_testbool">
4067- <return-value transfer-ownership="none">
4068- <type name="gboolean" c:type="gboolean"/>
4069- </return-value>
4070- </method>
4071- <method name="set_testbool"
4072- c:identifier="regress_test_wi_802_1x_set_testbool">
4073- <return-value transfer-ownership="none">
4074- <type name="none" c:type="void"/>
4075- </return-value>
4076- <parameters>
4077- <parameter name="v" transfer-ownership="none">
4078- <type name="gboolean" c:type="gboolean"/>
4079- </parameter>
4080- </parameters>
4081- </method>
4082- <property name="testbool" writable="1" transfer-ownership="none">
4083- <type name="gboolean"/>
4084- </property>
4085- <field name="parent_instance">
4086- <type name="GObject.Object" c:type="GObject"/>
4087- </field>
4088- <field name="testbool">
4089- <type name="gboolean" c:type="gboolean"/>
4090- </field>
4091- </class>
4092- <record name="TestWi8021xClass"
4093- c:type="RegressTestWi8021xClass"
4094- glib:is-gtype-struct-for="TestWi8021x">
4095- <field name="parent_class">
4096- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
4097- </field>
4098- </record>
4099- <constant name="UTF8_CONSTANT" value="const ♥ utf8">
4100- <type name="utf8" c:type="gchar*"/>
4101- </constant>
4102- <record name="_TestStructC" c:type="_RegressTestStructC">
4103- <field name="another_int" writable="1">
4104- <type name="gint" c:type="gint"/>
4105- </field>
4106- <field name="obj" writable="1">
4107- <type name="GObject.Object" c:type="GObject*"/>
4108- </field>
4109- </record>
4110- <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
4111- <return-value transfer-ownership="none">
4112- <type name="none" c:type="void"/>
4113- </return-value>
4114- <parameters>
4115- <parameter name="obj" transfer-ownership="none" allow-none="1">
4116- <doc xml:whitespace="preserve">A #RegressTestObj</doc>
4117- <type name="TestObj" c:type="RegressTestObj*"/>
4118- </parameter>
4119- </parameters>
4120- </function>
4121- <function name="global_get_flags_out"
4122- c:identifier="regress_global_get_flags_out">
4123- <return-value transfer-ownership="none">
4124- <type name="none" c:type="void"/>
4125- </return-value>
4126- <parameters>
4127- <parameter name="v"
4128- direction="out"
4129- caller-allocates="0"
4130- transfer-ownership="full">
4131- <doc xml:whitespace="preserve">A flags value</doc>
4132- <type name="TestFlags" c:type="RegressTestFlags*"/>
4133- </parameter>
4134- </parameters>
4135- </function>
4136- <function name="introspectable_via_alias"
4137- c:identifier="regress_introspectable_via_alias">
4138- <return-value transfer-ownership="none">
4139- <type name="none" c:type="void"/>
4140- </return-value>
4141- <parameters>
4142- <parameter name="data" transfer-ownership="none">
4143- <type name="PtrArrayAlias" c:type="RegressPtrArrayAlias*"/>
4144- </parameter>
4145- </parameters>
4146- </function>
4147- <function name="not_introspectable_via_alias"
4148- c:identifier="regress_not_introspectable_via_alias"
4149- introspectable="0">
4150- <return-value transfer-ownership="none">
4151- <type name="none" c:type="void"/>
4152- </return-value>
4153- <parameters>
4154- <parameter name="ok" transfer-ownership="none">
4155- <type name="VaListAlias" c:type="RegressVaListAlias"/>
4156- </parameter>
4157- </parameters>
4158- </function>
4159- <function name="random_function_with_skipped_structure"
4160- c:identifier="regress_random_function_with_skipped_structure"
4161- introspectable="0">
4162- <return-value transfer-ownership="none">
4163- <type name="none" c:type="void"/>
4164- </return-value>
4165- <parameters>
4166- <parameter name="x" transfer-ownership="none">
4167- <type name="gint" c:type="int"/>
4168- </parameter>
4169- <parameter name="foo" transfer-ownership="none">
4170- <type name="SkippedStructure" c:type="RegressSkippedStructure*"/>
4171- </parameter>
4172- <parameter name="v" transfer-ownership="none">
4173- <type name="gdouble" c:type="double"/>
4174- </parameter>
4175- </parameters>
4176- </function>
4177- <function name="set_abort_on_error"
4178- c:identifier="regress_set_abort_on_error">
4179- <return-value transfer-ownership="none">
4180- <type name="none" c:type="void"/>
4181- </return-value>
4182- <parameters>
4183- <parameter name="abort_on_error" transfer-ownership="none">
4184- <type name="gboolean" c:type="gboolean"/>
4185- </parameter>
4186- </parameters>
4187- </function>
4188- <function name="test_array_fixed_size_int_in"
4189- c:identifier="regress_test_array_fixed_size_int_in">
4190- <return-value transfer-ownership="none">
4191- <doc xml:whitespace="preserve">the sum of the items in @ints</doc>
4192- <type name="gint" c:type="int"/>
4193- </return-value>
4194- <parameters>
4195- <parameter name="ints" transfer-ownership="none">
4196- <doc xml:whitespace="preserve">a list of 5 integers</doc>
4197- <array c:type="int*" fixed-size="5">
4198- <type name="gint"/>
4199- </array>
4200- </parameter>
4201- </parameters>
4202- </function>
4203- <function name="test_array_fixed_size_int_out"
4204- c:identifier="regress_test_array_fixed_size_int_out">
4205- <return-value transfer-ownership="none">
4206- <type name="none" c:type="void"/>
4207- </return-value>
4208- <parameters>
4209- <parameter name="ints"
4210- direction="out"
4211- caller-allocates="0"
4212- transfer-ownership="full">
4213- <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
4214- <array c:type="int**" fixed-size="5">
4215- <type name="gint"/>
4216- </array>
4217- </parameter>
4218- </parameters>
4219- </function>
4220- <function name="test_array_fixed_size_int_return"
4221- c:identifier="regress_test_array_fixed_size_int_return">
4222- <return-value transfer-ownership="full">
4223- <doc xml:whitespace="preserve">a list of 5 integers ranging from 0 to 4</doc>
4224- <array c:type="int*" fixed-size="5">
4225- <type name="gint"/>
4226- </array>
4227- </return-value>
4228- </function>
4229- <function name="test_array_gint16_in"
4230- c:identifier="regress_test_array_gint16_in">
4231- <return-value transfer-ownership="none">
4232- <type name="gint" c:type="int"/>
4233- </return-value>
4234- <parameters>
4235- <parameter name="n_ints" transfer-ownership="none">
4236- <type name="gint" c:type="int"/>
4237- </parameter>
4238- <parameter name="ints" transfer-ownership="none">
4239- <doc xml:whitespace="preserve">List of ints</doc>
4240- <array length="0" c:type="gint16*">
4241- <type name="gint16"/>
4242- </array>
4243- </parameter>
4244- </parameters>
4245- </function>
4246- <function name="test_array_gint32_in"
4247- c:identifier="regress_test_array_gint32_in">
4248- <return-value transfer-ownership="none">
4249- <type name="gint32" c:type="gint32"/>
4250- </return-value>
4251- <parameters>
4252- <parameter name="n_ints" transfer-ownership="none">
4253- <type name="gint" c:type="int"/>
4254- </parameter>
4255- <parameter name="ints" transfer-ownership="none">
4256- <doc xml:whitespace="preserve">List of ints</doc>
4257- <array length="0" c:type="gint32*">
4258- <type name="gint32"/>
4259- </array>
4260- </parameter>
4261- </parameters>
4262- </function>
4263- <function name="test_array_gint64_in"
4264- c:identifier="regress_test_array_gint64_in">
4265- <return-value transfer-ownership="none">
4266- <type name="gint64" c:type="gint64"/>
4267- </return-value>
4268- <parameters>
4269- <parameter name="n_ints" transfer-ownership="none">
4270- <type name="gint" c:type="int"/>
4271- </parameter>
4272- <parameter name="ints" transfer-ownership="none">
4273- <doc xml:whitespace="preserve">List of ints</doc>
4274- <array length="0" c:type="gint64*">
4275- <type name="gint64"/>
4276- </array>
4277- </parameter>
4278- </parameters>
4279- </function>
4280- <function name="test_array_gint8_in"
4281- c:identifier="regress_test_array_gint8_in">
4282- <return-value transfer-ownership="none">
4283- <type name="gint" c:type="int"/>
4284- </return-value>
4285- <parameters>
4286- <parameter name="n_ints" transfer-ownership="none">
4287- <type name="gint" c:type="int"/>
4288- </parameter>
4289- <parameter name="ints" transfer-ownership="none">
4290- <doc xml:whitespace="preserve">List of ints</doc>
4291- <array length="0" c:type="gint8*">
4292- <type name="gint8"/>
4293- </array>
4294- </parameter>
4295- </parameters>
4296- </function>
4297- <function name="test_array_gtype_in"
4298- c:identifier="regress_test_array_gtype_in">
4299- <return-value transfer-ownership="full">
4300- <doc xml:whitespace="preserve">string representation of provided types</doc>
4301- <type name="utf8" c:type="char*"/>
4302- </return-value>
4303- <parameters>
4304- <parameter name="n_types" transfer-ownership="none">
4305- <type name="gint" c:type="int"/>
4306- </parameter>
4307- <parameter name="types" transfer-ownership="none">
4308- <doc xml:whitespace="preserve">List of types</doc>
4309- <array length="0" c:type="GType*">
4310- <type name="GType"/>
4311- </array>
4312- </parameter>
4313- </parameters>
4314- </function>
4315- <function name="test_array_int_full_out"
4316- c:identifier="regress_test_array_int_full_out">
4317- <return-value transfer-ownership="full">
4318- <doc xml:whitespace="preserve">a new array of integers.</doc>
4319- <array length="0" c:type="int*">
4320- <type name="gint"/>
4321- </array>
4322- </return-value>
4323- <parameters>
4324- <parameter name="len"
4325- direction="out"
4326- caller-allocates="0"
4327- transfer-ownership="full">
4328- <doc xml:whitespace="preserve">length of the returned array.</doc>
4329- <type name="gint" c:type="int*"/>
4330- </parameter>
4331- </parameters>
4332- </function>
4333- <function name="test_array_int_in"
4334- c:identifier="regress_test_array_int_in">
4335- <return-value transfer-ownership="none">
4336- <type name="gint" c:type="int"/>
4337- </return-value>
4338- <parameters>
4339- <parameter name="n_ints" transfer-ownership="none">
4340- <type name="gint" c:type="int"/>
4341- </parameter>
4342- <parameter name="ints" transfer-ownership="none">
4343- <doc xml:whitespace="preserve">List of ints</doc>
4344- <array length="0" c:type="int*">
4345- <type name="gint"/>
4346- </array>
4347- </parameter>
4348- </parameters>
4349- </function>
4350- <function name="test_array_int_inout"
4351- c:identifier="regress_test_array_int_inout">
4352- <return-value transfer-ownership="none">
4353- <type name="none" c:type="void"/>
4354- </return-value>
4355- <parameters>
4356- <parameter name="n_ints"
4357- direction="inout"
4358- caller-allocates="0"
4359- transfer-ownership="full">
4360- <doc xml:whitespace="preserve">the length of @ints</doc>
4361- <type name="gint" c:type="int*"/>
4362- </parameter>
4363- <parameter name="ints"
4364- direction="inout"
4365- caller-allocates="0"
4366- transfer-ownership="full">
4367- <doc xml:whitespace="preserve">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
4368- <array length="0" c:type="int**">
4369- <type name="gint"/>
4370- </array>
4371- </parameter>
4372- </parameters>
4373- </function>
4374- <function name="test_array_int_none_out"
4375- c:identifier="regress_test_array_int_none_out">
4376- <return-value transfer-ownership="none">
4377- <doc xml:whitespace="preserve">a static array of integers.</doc>
4378- <array length="0" c:type="int*">
4379- <type name="gint"/>
4380- </array>
4381- </return-value>
4382- <parameters>
4383- <parameter name="len"
4384- direction="out"
4385- caller-allocates="0"
4386- transfer-ownership="full">
4387- <doc xml:whitespace="preserve">length of the returned array.</doc>
4388- <type name="gint" c:type="int*"/>
4389- </parameter>
4390- </parameters>
4391- </function>
4392- <function name="test_array_int_null_in"
4393- c:identifier="regress_test_array_int_null_in">
4394- <return-value transfer-ownership="none">
4395- <type name="none" c:type="void"/>
4396- </return-value>
4397- <parameters>
4398- <parameter name="arr" transfer-ownership="none" allow-none="1">
4399- <array length="1" c:type="int*">
4400- <type name="gint"/>
4401- </array>
4402- </parameter>
4403- <parameter name="len" transfer-ownership="none">
4404- <doc xml:whitespace="preserve">length</doc>
4405- <type name="gint" c:type="int"/>
4406- </parameter>
4407- </parameters>
4408- </function>
4409- <function name="test_array_int_null_out"
4410- c:identifier="regress_test_array_int_null_out">
4411- <return-value transfer-ownership="none">
4412- <type name="none" c:type="void"/>
4413- </return-value>
4414- <parameters>
4415- <parameter name="arr"
4416- direction="out"
4417- caller-allocates="0"
4418- transfer-ownership="full"
4419- allow-none="1">
4420- <array length="1" c:type="int**">
4421- <type name="gint"/>
4422- </array>
4423- </parameter>
4424- <parameter name="len"
4425- direction="out"
4426- caller-allocates="0"
4427- transfer-ownership="full">
4428- <doc xml:whitespace="preserve">length</doc>
4429- <type name="gint" c:type="int*"/>
4430- </parameter>
4431- </parameters>
4432- </function>
4433- <function name="test_array_int_out"
4434- c:identifier="regress_test_array_int_out">
4435- <return-value transfer-ownership="none">
4436- <type name="none" c:type="void"/>
4437- </return-value>
4438- <parameters>
4439- <parameter name="n_ints"
4440- direction="out"
4441- caller-allocates="0"
4442- transfer-ownership="full">
4443- <doc xml:whitespace="preserve">the length of @ints</doc>
4444- <type name="gint" c:type="int*"/>
4445- </parameter>
4446- <parameter name="ints"
4447- direction="out"
4448- caller-allocates="0"
4449- transfer-ownership="full">
4450- <doc xml:whitespace="preserve">a list of 5 integers, from 0 to 4 in consecutive order</doc>
4451- <array length="0" c:type="int**">
4452- <type name="gint"/>
4453- </array>
4454- </parameter>
4455- </parameters>
4456- </function>
4457- <function name="test_async_ready_callback"
4458- c:identifier="regress_test_async_ready_callback">
4459- <return-value transfer-ownership="none">
4460- <type name="none" c:type="void"/>
4461- </return-value>
4462- <parameters>
4463- <parameter name="callback" transfer-ownership="none" scope="async">
4464- <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
4465- </parameter>
4466- </parameters>
4467- </function>
4468- <function name="test_boolean" c:identifier="regress_test_boolean">
4469- <return-value transfer-ownership="none">
4470- <type name="gboolean" c:type="gboolean"/>
4471- </return-value>
4472- <parameters>
4473- <parameter name="in" transfer-ownership="none">
4474- <type name="gboolean" c:type="gboolean"/>
4475- </parameter>
4476- </parameters>
4477- </function>
4478- <function name="test_boolean_false"
4479- c:identifier="regress_test_boolean_false">
4480- <return-value transfer-ownership="none">
4481- <type name="gboolean" c:type="gboolean"/>
4482- </return-value>
4483- <parameters>
4484- <parameter name="in" transfer-ownership="none">
4485- <type name="gboolean" c:type="gboolean"/>
4486- </parameter>
4487- </parameters>
4488- </function>
4489- <function name="test_boolean_true"
4490- c:identifier="regress_test_boolean_true">
4491- <return-value transfer-ownership="none">
4492- <type name="gboolean" c:type="gboolean"/>
4493- </return-value>
4494- <parameters>
4495- <parameter name="in" transfer-ownership="none">
4496- <type name="gboolean" c:type="gboolean"/>
4497- </parameter>
4498- </parameters>
4499- </function>
4500- <function name="test_cairo_context_full_return"
4501- c:identifier="regress_test_cairo_context_full_return">
4502- <return-value transfer-ownership="full">
4503- <type name="cairo.Context" c:type="cairo_t*"/>
4504- </return-value>
4505- </function>
4506- <function name="test_cairo_context_none_in"
4507- c:identifier="regress_test_cairo_context_none_in">
4508- <return-value transfer-ownership="none">
4509- <type name="none" c:type="void"/>
4510- </return-value>
4511- <parameters>
4512- <parameter name="context" transfer-ownership="none">
4513- <type name="cairo.Context" c:type="cairo_t*"/>
4514- </parameter>
4515- </parameters>
4516- </function>
4517- <function name="test_cairo_surface_full_out"
4518- c:identifier="regress_test_cairo_surface_full_out">
4519- <return-value transfer-ownership="none">
4520- <type name="none" c:type="void"/>
4521- </return-value>
4522- <parameters>
4523- <parameter name="surface"
4524- direction="out"
4525- caller-allocates="0"
4526- transfer-ownership="full">
4527- <type name="cairo.Surface" c:type="cairo_surface_t**"/>
4528- </parameter>
4529- </parameters>
4530- </function>
4531- <function name="test_cairo_surface_full_return"
4532- c:identifier="regress_test_cairo_surface_full_return">
4533- <return-value transfer-ownership="full">
4534- <type name="cairo.Surface" c:type="cairo_surface_t*"/>
4535- </return-value>
4536- </function>
4537- <function name="test_cairo_surface_none_in"
4538- c:identifier="regress_test_cairo_surface_none_in">
4539- <return-value transfer-ownership="none">
4540- <type name="none" c:type="void"/>
4541- </return-value>
4542- <parameters>
4543- <parameter name="surface" transfer-ownership="none">
4544- <type name="cairo.Surface" c:type="cairo_surface_t*"/>
4545- </parameter>
4546- </parameters>
4547- </function>
4548- <function name="test_cairo_surface_none_return"
4549- c:identifier="regress_test_cairo_surface_none_return">
4550- <return-value transfer-ownership="none">
4551- <type name="cairo.Surface" c:type="cairo_surface_t*"/>
4552- </return-value>
4553- </function>
4554- <function name="test_callback" c:identifier="regress_test_callback">
4555- <return-value transfer-ownership="none">
4556- <type name="gint" c:type="int"/>
4557- </return-value>
4558- <parameters>
4559- <parameter name="callback"
4560- transfer-ownership="none"
4561- allow-none="1"
4562- scope="call">
4563- <type name="TestCallback" c:type="RegressTestCallback"/>
4564- </parameter>
4565- </parameters>
4566- </function>
4567- <function name="test_callback_async"
4568- c:identifier="regress_test_callback_async">
4569- <return-value transfer-ownership="none">
4570- <type name="none" c:type="void"/>
4571- </return-value>
4572- <parameters>
4573- <parameter name="callback"
4574- transfer-ownership="none"
4575- scope="async"
4576- closure="1">
4577- <type name="TestCallbackUserData"
4578- c:type="RegressTestCallbackUserData"/>
4579- </parameter>
4580- <parameter name="user_data" transfer-ownership="none">
4581- <type name="gpointer" c:type="gpointer"/>
4582- </parameter>
4583- </parameters>
4584- </function>
4585- <function name="test_callback_destroy_notify"
4586- c:identifier="regress_test_callback_destroy_notify">
4587- <doc xml:whitespace="preserve">Notified - callback persists until a DestroyNotify delegate
4588-is invoked.</doc>
4589- <return-value transfer-ownership="none">
4590- <type name="gint" c:type="int"/>
4591- </return-value>
4592- <parameters>
4593- <parameter name="callback"
4594- transfer-ownership="none"
4595- scope="notified"
4596- closure="1"
4597- destroy="2">
4598- <type name="TestCallbackUserData"
4599- c:type="RegressTestCallbackUserData"/>
4600- </parameter>
4601- <parameter name="user_data" transfer-ownership="none">
4602- <type name="gpointer" c:type="gpointer"/>
4603- </parameter>
4604- <parameter name="notify" transfer-ownership="none" scope="async">
4605- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4606- </parameter>
4607- </parameters>
4608- </function>
4609- <function name="test_callback_thaw_async"
4610- c:identifier="regress_test_callback_thaw_async">
4611- <return-value transfer-ownership="none">
4612- <type name="gint" c:type="int"/>
4613- </return-value>
4614- </function>
4615- <function name="test_callback_thaw_notifications"
4616- c:identifier="regress_test_callback_thaw_notifications">
4617- <doc xml:whitespace="preserve">Invokes all callbacks installed by #test_callback_destroy_notify(),
4618-adding up their return values, and removes them, invoking the
4619-corresponding destroy notfications.</doc>
4620- <return-value transfer-ownership="none">
4621- <doc xml:whitespace="preserve">Sum of the return values of the invoked callbacks.</doc>
4622- <type name="gint" c:type="int"/>
4623- </return-value>
4624- </function>
4625- <function name="test_callback_user_data"
4626- c:identifier="regress_test_callback_user_data">
4627- <doc xml:whitespace="preserve">Call - callback parameter persists for the duration of the method
4628-call and can be released on return.</doc>
4629- <return-value transfer-ownership="none">
4630- <type name="gint" c:type="int"/>
4631- </return-value>
4632- <parameters>
4633- <parameter name="callback"
4634- transfer-ownership="none"
4635- scope="call"
4636- closure="1">
4637- <type name="TestCallbackUserData"
4638- c:type="RegressTestCallbackUserData"/>
4639- </parameter>
4640- <parameter name="user_data" transfer-ownership="none">
4641- <type name="gpointer" c:type="gpointer"/>
4642- </parameter>
4643- </parameters>
4644- </function>
4645- <function name="test_closure" c:identifier="regress_test_closure">
4646- <return-value transfer-ownership="none">
4647- <type name="gint" c:type="int"/>
4648- </return-value>
4649- <parameters>
4650- <parameter name="closure" transfer-ownership="none">
4651- <type name="GObject.Closure" c:type="GClosure*"/>
4652- </parameter>
4653- </parameters>
4654- </function>
4655- <function name="test_closure_one_arg"
4656- c:identifier="regress_test_closure_one_arg">
4657- <return-value transfer-ownership="none">
4658- <type name="gint" c:type="int"/>
4659- </return-value>
4660- <parameters>
4661- <parameter name="closure" transfer-ownership="none">
4662- <type name="GObject.Closure" c:type="GClosure*"/>
4663- </parameter>
4664- <parameter name="arg" transfer-ownership="none">
4665- <type name="gint" c:type="int"/>
4666- </parameter>
4667- </parameters>
4668- </function>
4669- <function name="test_date_in_gvalue"
4670- c:identifier="regress_test_date_in_gvalue">
4671- <return-value transfer-ownership="full">
4672- <type name="GObject.Value" c:type="GValue*"/>
4673- </return-value>
4674- </function>
4675- <function name="test_double" c:identifier="regress_test_double">
4676- <return-value transfer-ownership="none">
4677- <type name="gdouble" c:type="gdouble"/>
4678- </return-value>
4679- <parameters>
4680- <parameter name="in" transfer-ownership="none">
4681- <type name="gdouble" c:type="gdouble"/>
4682- </parameter>
4683- </parameters>
4684- </function>
4685- <function name="test_enum_param" c:identifier="regress_test_enum_param">
4686- <return-value transfer-ownership="none">
4687- <type name="utf8" c:type="gchar*"/>
4688- </return-value>
4689- <parameters>
4690- <parameter name="e" transfer-ownership="none">
4691- <type name="TestEnum" c:type="RegressTestEnum"/>
4692- </parameter>
4693- </parameters>
4694- </function>
4695- <function name="test_filename_return"
4696- c:identifier="regress_test_filename_return">
4697- <return-value transfer-ownership="full">
4698- <doc xml:whitespace="preserve">list of strings</doc>
4699- <type name="GLib.SList" c:type="GSList*">
4700- <type name="filename"/>
4701- </type>
4702- </return-value>
4703- </function>
4704- <function name="test_float" c:identifier="regress_test_float">
4705- <return-value transfer-ownership="none">
4706- <type name="gfloat" c:type="gfloat"/>
4707- </return-value>
4708- <parameters>
4709- <parameter name="in" transfer-ownership="none">
4710- <type name="gfloat" c:type="gfloat"/>
4711- </parameter>
4712- </parameters>
4713- </function>
4714- <function name="test_ghash_container_return"
4715- c:identifier="regress_test_ghash_container_return">
4716- <return-value transfer-ownership="container">
4717- <type name="GLib.HashTable" c:type="GHashTable*">
4718- <type name="utf8"/>
4719- <type name="utf8"/>
4720- </type>
4721- </return-value>
4722- </function>
4723- <function name="test_ghash_everything_return"
4724- c:identifier="regress_test_ghash_everything_return">
4725- <return-value transfer-ownership="full">
4726- <type name="GLib.HashTable" c:type="GHashTable*">
4727- <type name="utf8"/>
4728- <type name="utf8"/>
4729- </type>
4730- </return-value>
4731- </function>
4732- <function name="test_ghash_nested_everything_return"
4733- c:identifier="regress_test_ghash_nested_everything_return">
4734- <doc xml:whitespace="preserve">Specify nested parameterized types directly with the (type ) annotation.</doc>
4735- <return-value transfer-ownership="full">
4736- <type name="GLib.HashTable">
4737- <type name="utf8"/>
4738- <type name="GLib.HashTable">
4739- <type name="utf8"/>
4740- <type name="utf8"/>
4741- </type>
4742- </type>
4743- </return-value>
4744- </function>
4745- <function name="test_ghash_nested_everything_return2"
4746- c:identifier="regress_test_ghash_nested_everything_return2">
4747- <doc xml:whitespace="preserve">element-type annotation.</doc>
4748- <return-value transfer-ownership="full">
4749- <type name="GLib.HashTable" c:type="GHashTable*">
4750- <type name="utf8"/>
4751- <type name="GLib.HashTable">
4752- <type name="utf8"/>
4753- <type name="utf8"/>
4754- </type>
4755- </type>
4756- </return-value>
4757- </function>
4758- <function name="test_ghash_nothing_in"
4759- c:identifier="regress_test_ghash_nothing_in">
4760- <return-value transfer-ownership="none">
4761- <type name="none" c:type="void"/>
4762- </return-value>
4763- <parameters>
4764- <parameter name="in" transfer-ownership="none">
4765- <type name="GLib.HashTable" c:type="GHashTable*">
4766- <type name="utf8"/>
4767- <type name="utf8"/>
4768- </type>
4769- </parameter>
4770- </parameters>
4771- </function>
4772- <function name="test_ghash_nothing_in2"
4773- c:identifier="regress_test_ghash_nothing_in2">
4774- <return-value transfer-ownership="none">
4775- <type name="none" c:type="void"/>
4776- </return-value>
4777- <parameters>
4778- <parameter name="in" transfer-ownership="none">
4779- <type name="GLib.HashTable" c:type="GHashTable*">
4780- <type name="utf8"/>
4781- <type name="utf8"/>
4782- </type>
4783- </parameter>
4784- </parameters>
4785- </function>
4786- <function name="test_ghash_nothing_return"
4787- c:identifier="regress_test_ghash_nothing_return">
4788- <return-value transfer-ownership="none">
4789- <type name="GLib.HashTable" c:type="GHashTable*">
4790- <type name="utf8"/>
4791- <type name="utf8"/>
4792- </type>
4793- </return-value>
4794- </function>
4795- <function name="test_ghash_nothing_return2"
4796- c:identifier="regress_test_ghash_nothing_return2">
4797- <return-value transfer-ownership="none">
4798- <type name="GLib.HashTable" c:type="GHashTable*">
4799- <type name="utf8"/>
4800- <type name="utf8"/>
4801- </type>
4802- </return-value>
4803- </function>
4804- <function name="test_ghash_null_in"
4805- c:identifier="regress_test_ghash_null_in">
4806- <return-value transfer-ownership="none">
4807- <type name="none" c:type="void"/>
4808- </return-value>
4809- <parameters>
4810- <parameter name="in" transfer-ownership="none" allow-none="1">
4811- <type name="GLib.HashTable" c:type="GHashTable*">
4812- <type name="utf8"/>
4813- <type name="utf8"/>
4814- </type>
4815- </parameter>
4816- </parameters>
4817- </function>
4818- <function name="test_ghash_null_out"
4819- c:identifier="regress_test_ghash_null_out">
4820- <return-value transfer-ownership="none">
4821- <type name="none" c:type="void"/>
4822- </return-value>
4823- <parameters>
4824- <parameter name="out"
4825- direction="out"
4826- caller-allocates="0"
4827- transfer-ownership="full"
4828- allow-none="1">
4829- <type name="GLib.HashTable" c:type="GHashTable**">
4830- <type name="utf8"/>
4831- <type name="utf8"/>
4832- </type>
4833- </parameter>
4834- </parameters>
4835- </function>
4836- <function name="test_ghash_null_return"
4837- c:identifier="regress_test_ghash_null_return">
4838- <return-value transfer-ownership="none">
4839- <type name="GLib.HashTable" c:type="GHashTable*">
4840- <type name="utf8"/>
4841- <type name="utf8"/>
4842- </type>
4843- </return-value>
4844- </function>
4845- <function name="test_glist_container_return"
4846- c:identifier="regress_test_glist_container_return">
4847- <return-value transfer-ownership="container">
4848- <type name="GLib.List" c:type="GList*">
4849- <type name="utf8"/>
4850- </type>
4851- </return-value>
4852- </function>
4853- <function name="test_glist_everything_return"
4854- c:identifier="regress_test_glist_everything_return">
4855- <return-value transfer-ownership="full">
4856- <type name="GLib.List" c:type="GList*">
4857- <type name="utf8"/>
4858- </type>
4859- </return-value>
4860- </function>
4861- <function name="test_glist_nothing_in"
4862- c:identifier="regress_test_glist_nothing_in">
4863- <return-value transfer-ownership="none">
4864- <type name="none" c:type="void"/>
4865- </return-value>
4866- <parameters>
4867- <parameter name="in" transfer-ownership="none">
4868- <type name="GLib.List" c:type="GList*">
4869- <type name="utf8"/>
4870- </type>
4871- </parameter>
4872- </parameters>
4873- </function>
4874- <function name="test_glist_nothing_in2"
4875- c:identifier="regress_test_glist_nothing_in2">
4876- <return-value transfer-ownership="none">
4877- <type name="none" c:type="void"/>
4878- </return-value>
4879- <parameters>
4880- <parameter name="in" transfer-ownership="none">
4881- <type name="GLib.List" c:type="GList*">
4882- <type name="utf8"/>
4883- </type>
4884- </parameter>
4885- </parameters>
4886- </function>
4887- <function name="test_glist_nothing_return"
4888- c:identifier="regress_test_glist_nothing_return">
4889- <return-value transfer-ownership="none">
4890- <type name="GLib.List" c:type="GList*">
4891- <type name="utf8"/>
4892- </type>
4893- </return-value>
4894- </function>
4895- <function name="test_glist_nothing_return2"
4896- c:identifier="regress_test_glist_nothing_return2">
4897- <return-value transfer-ownership="none">
4898- <type name="GLib.List" c:type="GList*">
4899- <type name="utf8"/>
4900- </type>
4901- </return-value>
4902- </function>
4903- <function name="test_glist_null_in"
4904- c:identifier="regress_test_glist_null_in">
4905- <return-value transfer-ownership="none">
4906- <type name="none" c:type="void"/>
4907- </return-value>
4908- <parameters>
4909- <parameter name="in" transfer-ownership="none" allow-none="1">
4910- <type name="GLib.SList" c:type="GSList*">
4911- <type name="utf8"/>
4912- </type>
4913- </parameter>
4914- </parameters>
4915- </function>
4916- <function name="test_glist_null_out"
4917- c:identifier="regress_test_glist_null_out">
4918- <return-value transfer-ownership="none">
4919- <type name="none" c:type="void"/>
4920- </return-value>
4921- <parameters>
4922- <parameter name="out_list"
4923- direction="out"
4924- caller-allocates="0"
4925- transfer-ownership="full"
4926- allow-none="1">
4927- <type name="GLib.SList" c:type="GSList**">
4928- <type name="utf8"/>
4929- </type>
4930- </parameter>
4931- </parameters>
4932- </function>
4933- <function name="test_gslist_container_return"
4934- c:identifier="regress_test_gslist_container_return">
4935- <return-value transfer-ownership="container">
4936- <type name="GLib.SList" c:type="GSList*">
4937- <type name="utf8"/>
4938- </type>
4939- </return-value>
4940- </function>
4941- <function name="test_gslist_everything_return"
4942- c:identifier="regress_test_gslist_everything_return">
4943- <return-value transfer-ownership="full">
4944- <type name="GLib.SList" c:type="GSList*">
4945- <type name="utf8"/>
4946- </type>
4947- </return-value>
4948- </function>
4949- <function name="test_gslist_nothing_in"
4950- c:identifier="regress_test_gslist_nothing_in">
4951- <return-value transfer-ownership="none">
4952- <type name="none" c:type="void"/>
4953- </return-value>
4954- <parameters>
4955- <parameter name="in" transfer-ownership="none">
4956- <type name="GLib.SList" c:type="GSList*">
4957- <type name="utf8"/>
4958- </type>
4959- </parameter>
4960- </parameters>
4961- </function>
4962- <function name="test_gslist_nothing_in2"
4963- c:identifier="regress_test_gslist_nothing_in2">
4964- <return-value transfer-ownership="none">
4965- <type name="none" c:type="void"/>
4966- </return-value>
4967- <parameters>
4968- <parameter name="in" transfer-ownership="none">
4969- <type name="GLib.SList" c:type="GSList*">
4970- <type name="utf8"/>
4971- </type>
4972- </parameter>
4973- </parameters>
4974- </function>
4975- <function name="test_gslist_nothing_return"
4976- c:identifier="regress_test_gslist_nothing_return">
4977- <return-value transfer-ownership="none">
4978- <type name="GLib.SList" c:type="GSList*">
4979- <type name="utf8"/>
4980- </type>
4981- </return-value>
4982- </function>
4983- <function name="test_gslist_nothing_return2"
4984- c:identifier="regress_test_gslist_nothing_return2">
4985- <return-value transfer-ownership="none">
4986- <type name="GLib.SList" c:type="GSList*">
4987- <type name="utf8"/>
4988- </type>
4989- </return-value>
4990- </function>
4991- <function name="test_gslist_null_in"
4992- c:identifier="regress_test_gslist_null_in">
4993- <return-value transfer-ownership="none">
4994- <type name="none" c:type="void"/>
4995- </return-value>
4996- <parameters>
4997- <parameter name="in" transfer-ownership="none" allow-none="1">
4998- <type name="GLib.SList" c:type="GSList*">
4999- <type name="utf8"/>
5000- </type>
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: