[gobject-introspection] ast: Track enum/bitfield member parents
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] ast: Track enum/bitfield member parents
- Date: Sat, 2 Feb 2013 00:47:34 +0000 (UTC)
commit f027b6841164fc5c712236b3c40a90808e1b7428
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Jan 30 10:02:41 2013 -0500
ast: Track enum/bitfield member parents
We need this for the doctool so that we can link to an enum
definition when we reference one of the member values.
https://bugzilla.gnome.org/show_bug.cgi?id=693040
giscanner/ast.py | 5 +++++
giscanner/girparser.py | 6 ++++--
2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/giscanner/ast.py b/giscanner/ast.py
index 7076a84..50b0f29 100644
--- a/giscanner/ast.py
+++ b/giscanner/ast.py
@@ -770,6 +770,8 @@ class Enum(Node, Registered):
self.c_symbol_prefix = c_symbol_prefix
self.ctype = ctype
self.members = members
+ for member in members:
+ member.parent = self
# Associated error domain name
self.error_domain = None
self.static_methods = []
@@ -791,6 +793,8 @@ class Bitfield(Node, Registered):
self.ctype = ctype
self.c_symbol_prefix = c_symbol_prefix
self.members = members
+ for member in members:
+ member.parent = self
self.static_methods = []
def _walk(self, callback, chain):
@@ -806,6 +810,7 @@ class Member(Annotated):
self.value = value
self.symbol = symbol
self.nick = nick
+ self.parent = None
def __cmp__(self, other):
return cmp(self.name, other.name)
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index ef915a7..ea8b0d6 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -581,8 +581,10 @@ class GIRParser(object):
self._namespace.append(obj)
return
- for member in self._find_children(node, _corens('member')):
- members.append(self._parse_member(member))
+ for member_node in self._find_children(node, _corens('member')):
+ member = self._parse_member(member_node)
+ member.parent = obj
+ members.append(member)
for func_node in self._find_children(node, _corens('function')):
func = self._parse_function_common(func_node, ast.Function)
obj.static_methods.append(func)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]