summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
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);
}
}