diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-11-17 21:26:39 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-11-17 21:26:39 +0100 |
commit | 1051b5f138817a96592137f4f5b16e53c9669539 (patch) | |
tree | b7611f8710a94ce883dd8ec108f0b13fb4dd4a16 /codegen | |
parent | 16840d25fb474f313e98989856fc315149f3b73e (diff) | |
download | vala-1051b5f138817a96592137f4f5b16e53c9669539.tar.gz |
codegen: Check required length of enum type name for GType support
Add corresponding tests for types which have support for GType
Diffstat (limited to 'codegen')
-rw-r--r-- | codegen/valaccodestructmodule.vala | 6 | ||||
-rw-r--r-- | codegen/valagtypemodule.vala | 12 |
2 files changed, 12 insertions, 6 deletions
diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala index d019a95e1..d9577e7df 100644 --- a/codegen/valaccodestructmodule.vala +++ b/codegen/valaccodestructmodule.vala @@ -157,12 +157,6 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule { push_context (new EmitContext (st)); push_line (st.source_reference); - if (get_ccode_has_type_id (st) && get_ccode_name (st).length < 3) { - st.error = true; - Report.error (st.source_reference, "Name `%s' is too short for struct using GType", get_ccode_name (st)); - return; - } - var old_instance_finalize_context = instance_finalize_context; instance_finalize_context = new EmitContext (); diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index 95e49c56a..ab6c5647f 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -2358,6 +2358,12 @@ public class Vala.GTypeModule : GErrorModule { } if (get_ccode_has_type_id (st)) { + if (get_ccode_name (st).length < 3) { + st.error = true; + Report.error (st.source_reference, "Struct name `%s' is too short", get_ccode_name (st)); + return; + } + push_line (st.source_reference); var type_fun = new StructRegisterFunction (st); type_fun.init_from_type (context, false, false); @@ -2370,6 +2376,12 @@ public class Vala.GTypeModule : GErrorModule { base.visit_enum (en); if (get_ccode_has_type_id (en)) { + if (get_ccode_name (en).length < 3) { + en.error = true; + Report.error (en.source_reference, "Enum name `%s' is too short", get_ccode_name (en)); + return; + } + push_line (en.source_reference); var type_fun = new EnumRegisterFunction (en); type_fun.init_from_type (context, false, false); |