diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-02-09 12:13:00 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-02-09 12:13:00 +0100 |
commit | 7496f6eda38f730824220fa34000582249d2cd23 (patch) | |
tree | 9441908920770be0e64043faa34b1f1bc58380d9 /codegen | |
parent | 0d3ff97a2832f1d35d2d8eb488ecede4c7d7ca65 (diff) | |
download | vala-7496f6eda38f730824220fa34000582249d2cd23.tar.gz |
gtkmodule: Recurse inner classes of ObjectTypeSymbols (2)
Diffstat (limited to 'codegen')
-rw-r--r-- | codegen/valagtkmodule.vala | 19 |
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); } } |