]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Generated SimpleType structs don't have a type id
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 9 Jan 2022 18:49:27 +0000 (19:49 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 9 Feb 2022 21:14:36 +0000 (22:14 +0100)
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

codegen/valaccodestructmodule.vala

index c82b79671479ee845c691cd347dfb0f478352aad..2b685383dda5d1537e225f9de31ac2f83d03afd9 100644 (file)
@@ -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 ()) {