summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2022-02-09 12:13:00 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2022-02-09 12:13:00 +0100
commit7496f6eda38f730824220fa34000582249d2cd23 (patch)
tree9441908920770be0e64043faa34b1f1bc58380d9 /codegen
parent0d3ff97a2832f1d35d2d8eb488ecede4c7d7ca65 (diff)
downloadvala-7496f6eda38f730824220fa34000582249d2cd23.tar.gz
gtkmodule: Recurse inner classes of ObjectTypeSymbols (2)
Diffstat (limited to 'codegen')
-rw-r--r--codegen/valagtkmodule.vala19
1 files changed, 14 insertions, 5 deletions
diff --git a/codegen/valagtkmodule.vala b/codegen/valagtkmodule.vala
index ae316cada..e129fcba0 100644
--- a/codegen/valagtkmodule.vala
+++ b/codegen/valagtkmodule.vala
@@ -96,8 +96,19 @@ public class Vala.GtkModule : GSignalModule {
recurse_type_id_to_vala_map (context.root);
}
- private void recurse_type_id_to_vala_map (Namespace ns) {
- foreach (var cl in ns.get_classes()) {
+ private void recurse_type_id_to_vala_map (Symbol sym) {
+ unowned List<Class> classes;
+ if (sym is Namespace) {
+ foreach (var inner in ((Namespace) sym).get_namespaces()) {
+ recurse_type_id_to_vala_map (inner);
+ }
+ classes = ((Namespace) sym).get_classes ();
+ } else if (sym is ObjectTypeSymbol) {
+ classes = ((ObjectTypeSymbol) sym).get_classes ();
+ } else {
+ return;
+ }
+ foreach (var cl in classes) {
if (!cl.is_compact) {
var type_id = get_ccode_type_id (cl);
if (type_id == null)
@@ -111,9 +122,7 @@ public class Vala.GtkModule : GSignalModule {
}
type_id_to_vala_map.set (type_id, cl);
}
- }
- foreach (var inner in ns.get_namespaces()) {
- recurse_type_id_to_vala_map (inner);
+ recurse_type_id_to_vala_map (cl);
}
}