summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-11-17 21:26:39 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2021-11-17 21:26:39 +0100
commit1051b5f138817a96592137f4f5b16e53c9669539 (patch)
treeb7611f8710a94ce883dd8ec108f0b13fb4dd4a16 /codegen
parent16840d25fb474f313e98989856fc315149f3b73e (diff)
downloadvala-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.vala6
-rw-r--r--codegen/valagtypemodule.vala12
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);