summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2022-01-09 19:49:27 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2022-02-16 18:28:28 +0100
commit7ac7e059335caf671b21c462706faee97bd57f4d (patch)
tree7a3fee7d8838d801dd5de8fbedfdade142910a1b
parent045656da11a4a662d161f7e27bb479310f68f920 (diff)
downloadvala-7ac7e059335caf671b21c462706faee97bd57f4d.tar.gz
codegen: Generated SimpleType structs don't have a type id
Set "CCode.has_type_id" in CCodeStructModule.generate_struct_declaration() like in GTypeModule.visit_struct() for SimpleType structs which might be executed too late. In addition to 2e798fc3f8e9af25a4c231c2561894d9f0a0be50
-rw-r--r--codegen/valaccodestructmodule.vala5
1 files changed, 5 insertions, 0 deletions
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
index c82b79671..2b685383d 100644
--- a/codegen/valaccodestructmodule.vala
+++ b/codegen/valaccodestructmodule.vala
@@ -32,6 +32,11 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
if (st.base_struct != null) {
generate_struct_declaration (st.base_struct, decl_space);
+ } else if (!st.external_package) {
+ // custom simple type structs cannot have a type id which depends on head-allocation
+ if (st.get_attribute ("SimpleType") != null && !st.has_attribute_argument ("CCode", "type_id")) {
+ st.set_attribute_bool ("CCode", "has_type_id", false);
+ }
}
if (st.is_boolean_type () || st.is_integer_type () || st.is_floating_type ()) {