Merge lp:~ubuntu-branches/ubuntu/natty/gobject-introspection/natty-201101212212 into lp:ubuntu/natty/gobject-introspection
- Natty (11.04)
- natty-201101212212
- Merge into natty
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu branches | Pending | ||
Review via email: mp+47123@code.launchpad.net |
Commit message
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.