summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2022-02-09 00:05:24 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2022-02-09 08:19:19 +0100
commita1a8b3f80e9e764ceb2795285c20e18d25b6be97 (patch)
treeddffdf0db9c5e0d37d4320e276dc5cab01004242 /codegen
parent2a6972feafd6c09254816486848c8854f99670a8 (diff)
downloadvala-a1a8b3f80e9e764ceb2795285c20e18d25b6be97.tar.gz
gtkmodule: Recurse inner classes of ObjectTypeSymbols
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 cf7d26b55..c0d98631c 100644
--- a/codegen/valagtkmodule.vala
+++ b/codegen/valagtkmodule.vala
@@ -79,14 +79,23 @@ public class Vala.GtkModule : GSignalModule {
recurse_cclass_to_vala_map (context.root);
}
- private void recurse_cclass_to_vala_map (Namespace ns) {
- foreach (var cl in ns.get_classes()) {
+ private void recurse_cclass_to_vala_map (Symbol sym) {
+ unowned List<Class> classes;
+ if (sym is Namespace) {
+ foreach (var inner in ((Namespace) sym).get_namespaces()) {
+ recurse_cclass_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) {
cclass_to_vala_map.set (get_ccode_name (cl), cl);
}
- }
- foreach (var inner in ns.get_namespaces()) {
- recurse_cclass_to_vala_map (inner);
+ recurse_cclass_to_vala_map (cl);
}
}