summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <johan@src.gnome.org>2008-05-08 23:38:50 +0000
committerJohan Dahlin <johan@src.gnome.org>2008-05-08 23:38:50 +0000
commitd63401a69a8bc5391ff6898c5278ddfa8da5f512 (patch)
tree259be2bdebfe5b8ca0eda9fbc3b443bc14c79b24
parent870afacec8ba104daef3c1a23e42a3646d547633 (diff)
downloadgobject-introspection-d63401a69a8bc5391ff6898c5278ddfa8da5f512.tar.gz
Resurrect GIDL
svn path=/trunk/; revision=269
-rw-r--r--giscanner/gidlwriter.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/giscanner/gidlwriter.py b/giscanner/gidlwriter.py
index d2c7b2f8..0cca2d27 100644
--- a/giscanner/gidlwriter.py
+++ b/giscanner/gidlwriter.py
@@ -27,17 +27,18 @@ from .xmlwriter import XMLWriter
class GIDLWriter(XMLWriter):
- def __init__(self, namespace, nodes):
+ def __init__(self, namespace):
super(GIDLWriter, self).__init__()
- self._write_api(namespace, nodes)
+ self._write_api(namespace)
- def _write_api(self, namespace, nodes):
+ def _write_api(self, namespace):
with self.tagcontext('api', [('version', '1.0')]):
- self._write_namespace(namespace, nodes)
+ self._write_namespace(namespace)
- def _write_namespace(self, namespace, nodes):
- with self.tagcontext('namespace', [('name', namespace)]):
- for node in nodes:
+ def _write_namespace(self, namespace):
+ attrs = [('name', namespace.name)]
+ with self.tagcontext('namespace', attrs):
+ for node in namespace.nodes:
self._write_node(node)
def _write_node(self, node):
@@ -70,9 +71,9 @@ class GIDLWriter(XMLWriter):
def _write_return_type(self, return_):
if not return_:
return
- attrs = [('type', return_.ctype.name)]
+ attrs = [('type', return_.type.name)]
if return_.transfer != 'none':
- attrs.append(('transfer', return_.transfer))
+ attrs.append(('transfer', str(int(return_.transfer))))
self.write_tag('return-type', attrs)
def _write_parameters(self, parameters):
@@ -87,8 +88,8 @@ class GIDLWriter(XMLWriter):
('type', parameter.type.name)]
if parameter.direction != 'in':
attrs.append(('direction', parameter.direction))
- if parameter.transfer != 'none':
- attrs.append(('transfer', parameter.transfer))
+ if parameter.transfer:
+ attrs.append(('transfer', str(int(parameter.transfer))))
self.write_tag('parameter', attrs)
def _write_enum(self, enum):