[valadoc] libvaladoc: register child structs
- From: Florian Brosch <flobrosch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [valadoc] libvaladoc: register child structs
- Date: Fri, 10 Aug 2012 21:52:51 +0000 (UTC)
commit 13aba44f713378272aa92ad033c7016609802661
Author: Florian Brosch <flo brosch gmail com>
Date: Fri Aug 10 02:33:25 2012 +0200
libvaladoc: register child structs
src/libvaladoc/api/childsymbolregistrar.vala | 4 ++++
src/libvaladoc/api/struct.vala | 18 ++++++++++++++++++
2 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/src/libvaladoc/api/childsymbolregistrar.vala b/src/libvaladoc/api/childsymbolregistrar.vala
index c3288e0..e044327 100644
--- a/src/libvaladoc/api/childsymbolregistrar.vala
+++ b/src/libvaladoc/api/childsymbolregistrar.vala
@@ -82,6 +82,10 @@ public class Valadoc.Api.ChildSymbolRegistrar : Visitor {
* { inheritDoc}
*/
public override void visit_struct (Struct item) {
+ if (item.base_type != null) {
+ ((Struct) item.base_type.data_type).register_child_struct (item);
+ }
+
item.accept_all_children (this, false);
}
diff --git a/src/libvaladoc/api/struct.vala b/src/libvaladoc/api/struct.vala
index 52bcb6b..3024948 100644
--- a/src/libvaladoc/api/struct.vala
+++ b/src/libvaladoc/api/struct.vala
@@ -95,6 +95,24 @@ public class Valadoc.Api.Struct : TypeSymbol {
}
+ private Set<Struct> _known_child_structs = new TreeSet<Struct> ();
+
+ /**
+ * Returns a list of all known structs based on this struct
+ */
+ public Collection<Struct> get_known_child_structs () {
+ return _known_child_structs.read_only_view;
+ }
+
+ public void register_child_struct (Struct stru) {
+ if (this.base_type != null) {
+ ((Struct) this.base_type.data_type).register_child_struct (stru);
+ }
+
+ _known_child_structs.add (stru);
+ }
+
+
/**
* { inheritDoc}
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]