summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Holejsovsky <pholejs@src.gnome.org>2011-08-13 13:10:34 +0200
committerPavel Holejsovsky <pholejs@src.gnome.org>2011-08-16 10:43:27 +0200
commit64848acb817369436d629d153c5750789c0addc3 (patch)
treee6113f9b9a8d8dd524a73b8f53d34c26f27215f9
parent684bc3384e23b8168b06c480de09f6650a7ddd63 (diff)
downloadgobject-introspection-64848acb817369436d629d153c5750789c0addc3.tar.gz
Teach scanner's girparser about fundamentals
Make sure that fundamental attribute and associated functions (ref-func, unref-func, set-value-func and get-value-func) are parsed, otherwise we fail reparse-validating girs containing fundamentals.
-rw-r--r--giscanner/girparser.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index d7a59b83..51ef9340 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -239,6 +239,14 @@ class GIRParser(object):
type_struct = node.attrib.get(_glibns('type-struct'))
if type_struct:
obj.glib_type_struct = self._namespace.type_from_name(type_struct)
+ if klass == ast.Class:
+ is_fundamental = node.attrib.get(_glibns('fundamental'))
+ if is_fundamental and is_fundamental != '0':
+ obj.fundamental = True
+ for func_id in ['ref-func', 'unref-func',
+ 'set-value-func', 'get-value-func']:
+ func_name = node.attrib.get(_glibns(func_id))
+ obj.__dict__[func_id.replace('-', '_')] = func_name
self._namespace.append(obj)
if self._types_only: