summaryrefslogtreecommitdiff
path: root/giscanner/girparser.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/girparser.py')
-rw-r--r--giscanner/girparser.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index 5fc22899..2f8c5f66 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -462,14 +462,20 @@ class GIRParser(object):
def _parse_record(self, node, anonymous=False):
struct = self._parse_compound(ast.Record, node)
is_gtype_struct_for = node.attrib.get(_glibns('is-gtype-struct-for'))
+ copy_func = node.attrib.get('copy-function')
+ free_func = node.attrib.get('free-function')
if is_gtype_struct_for is not None:
struct.is_gtype_struct_for = self._namespace.type_from_name(is_gtype_struct_for)
+ struct.copy_func = copy_func
+ struct.free_func = free_func
if not anonymous:
self._namespace.append(struct)
return struct
def _parse_union(self, node, anonymous=False):
union = self._parse_compound(ast.Union, node)
+ union.copy_func = node.attrib.get('copy-function')
+ union.free_func = node.attrib.get('free-function')
if not anonymous:
self._namespace.append(union)
return union