summaryrefslogtreecommitdiff
path: root/giscanner/gidlwriter.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/gidlwriter.py')
-rw-r--r--giscanner/gidlwriter.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/giscanner/gidlwriter.py b/giscanner/gidlwriter.py
index 35fc521e..8d23e01f 100644
--- a/giscanner/gidlwriter.py
+++ b/giscanner/gidlwriter.py
@@ -50,7 +50,10 @@ class GIDLWriter(XMLWriter):
def _write_return_type(self, return_):
if not return_:
return
- self.write_tag('return-type', [('type', return_.type)])
+ attrs = [('type', return_.type)]
+ if return_.transfer != 'none':
+ attrs.append(('transfer', return_.transfer))
+ self.write_tag('return-type', attrs)
def _write_parameters(self, parameters):
if not parameters:
@@ -60,8 +63,13 @@ class GIDLWriter(XMLWriter):
self._write_parameter(parameter)
def _write_parameter(self, parameter):
- self.write_tag('parameter', [('name', parameter.name),
- ('type', parameter.type)])
+ attrs = [('name', parameter.name),
+ ('type', parameter.type)]
+ if parameter.direction != 'in':
+ attrs.append(('direction', parameter.direction))
+ if parameter.transfer != 'none':
+ attrs.append(('transfer', parameter.transfer))
+ self.write_tag('parameter', attrs)
def _write_enum(self, enum):
attrs = [('name', enum.name)]