[vala/0.48] gtkmodule: Recurse inner classes of ObjectTypeSymbols
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/0.48] gtkmodule: Recurse inner classes of ObjectTypeSymbols
- Date: Thu, 17 Feb 2022 08:47:06 +0000 (UTC)
commit efc75e395175f782a9b148bd0186fdb239b28f5a
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Wed Feb 9 00:05:24 2022 +0100
gtkmodule: Recurse inner classes of ObjectTypeSymbols
codegen/valagtkmodule.vala | 38 ++++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)
---
diff --git a/codegen/valagtkmodule.vala b/codegen/valagtkmodule.vala
index a8b0d31c0..16442f621 100644
--- a/codegen/valagtkmodule.vala
+++ b/codegen/valagtkmodule.vala
@@ -45,8 +45,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)
@@ -60,9 +71,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);
}
}
@@ -75,14 +84,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);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]