[gobject-introspection/wip/transformer] Fix array and transfer parsing
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection/wip/transformer] Fix array and transfer parsing
- Date: Fri, 30 Jul 2010 00:10:56 +0000 (UTC)
commit 015cd0012213dee5fc0678a2bab0b61052cea0eb
Author: Colin Walters <walters verbum org>
Date: Thu Jul 29 18:03:45 2010 -0400
Fix array and transfer parsing
giscanner/primarytransformer.py | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
---
diff --git a/giscanner/primarytransformer.py b/giscanner/primarytransformer.py
index b3d2453..2ce0610 100644
--- a/giscanner/primarytransformer.py
+++ b/giscanner/primarytransformer.py
@@ -241,7 +241,11 @@ class PrimaryTransformer(object):
# Explicitly erase ctype since it's no longer valid
element_type_node.ctype = None
- container_type = Array(None, element_type_node,
+ if isinstance(node.type, Array):
+ name = node.type.array_type
+ else:
+ name = None
+ container_type = Array(name, element_type_node,
ctype=node.type.ctype,
is_const=node.type.is_const)
if OPT_ARRAY_ZERO_TERMINATED in array_values:
@@ -270,7 +274,7 @@ class PrimaryTransformer(object):
element_type = element_type_opt.flat()
if isinstance(node.type, List):
assert len(element_type) == 1
- node.element_type = self._resolve(element_type[0])
+ node.type.element_type = self._resolve(element_type[0])
elif isinstance(node.type, Map):
assert len(element_type) == 2
node.type.key_type = self._resolve(element_type[0])
@@ -325,7 +329,12 @@ class PrimaryTransformer(object):
options = getattr(tag, 'options', {})
(node.direction, node.caller_allocates) = \
self._extract_direction(node, options)
- node.transfer = self._get_transfer_default(parent, node, options)
+ transfer_tag = options.get(TAG_TRANSFER)
+ if transfer_tag:
+ node.transfer = transfer_tag.one()
+ else:
+ node.transfer = self._get_transfer_default(parent, node, options)
+
self._adjust_container_type(parent, node, options)
param_type = options.get(OPT_TYPE)
if param_type:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]