gobject-introspection r669 - in trunk: . giscanner
- From: johan svn gnome org
- To: svn-commits-list gnome org
- Subject: gobject-introspection r669 - in trunk: . giscanner
- Date: Sat, 11 Oct 2008 21:50:46 +0000 (UTC)
Author: johan
Date: Sat Oct 11 21:50:46 2008
New Revision: 669
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=669&view=rev
Log:
2008-10-11 Johan Dahlin <johan gnome org>
* giscanner/girparser.py:
Also parse enums which are not glib types.
Modified:
trunk/ChangeLog
trunk/giscanner/girparser.py
Modified: trunk/giscanner/girparser.py
==============================================================================
--- trunk/giscanner/girparser.py (original)
+++ trunk/giscanner/girparser.py Sat Oct 11 21:50:46 2008
@@ -20,8 +20,8 @@
from xml.etree.cElementTree import parse
-from .ast import (Alias, Callback, Function, Field, Parameter, Property,
- Return, Union, Struct, Type, Array, Namespace, Varargs)
+from .ast import (Alias, Array, Callback, Enum, Function, Field, Namespace,
+ Parameter, Property, Return, Union, Struct, Type, Varargs)
from .glibast import (GLibEnum, GLibEnumMember, GLibFlags,
GLibInterface, GLibObject, GLibBoxedStruct,
GLibBoxedUnion, GLibBoxedOther)
@@ -257,13 +257,25 @@
node.attrib.get(_glibns('nick')))
def _parse_enumeration_bitfield(self, node):
- klass = (GLibFlags if node.tag == _corens('bitfield') else GLibEnum)
+ name = node.attrib.get('name')
+ ctype = node.attrib.get(_cns('type'))
+ get_type = node.attrib.get(_glibns('get-type'))
+ type_name = node.attrib.get(_glibns('type-name'))
+ if get_type:
+ if node.tag == _corens('bitfield'):
+ klass = GLibFlags
+ else:
+ klass = GLibEnum
+ else:
+ klass = Enum
+ type_name = ctype
members = []
for member in node.findall(_corens('member')):
members.append(self._parse_member(member))
- obj = klass(node.attrib.get('name'),
- node.attrib.get(_glibns('type-name')),
- members,
- node.attrib.get(_glibns('get-type')))
- obj.ctype = node.attrib.get(_cns('type'))
+
+ if klass is Enum:
+ obj = klass(name, type_name, member)
+ else:
+ obj = klass(name, type_name, members, get_type)
+ obj.ctype = ctype
self._add_node(obj)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]