]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Enforce name-length >= 3 for structs using GType
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 19 Nov 2017 14:29:55 +0000 (15:29 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 19 Nov 2017 14:34:22 +0000 (15:34 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=764041

codegen/valaccodestructmodule.vala
tests/Makefile.am
tests/structs/bug764041.test [new file with mode: 0644]

index 9774570cd5d5bfe6a5376bf89520d5c2f17dd972..654894812f3f9d4fcac25a58c3fead15580b4ec8 100644 (file)
@@ -158,6 +158,12 @@ 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".printf (get_ccode_name (st)));
+                       return;
+               }
+
                var old_instance_finalize_context = instance_finalize_context;
                instance_finalize_context = new EmitContext ();
 
index d8b7c8ff3962d5aa48d01757afb5dc61a31608ce..682f33d163125af72da990ffc6a64a801f3f5863 100644 (file)
@@ -154,6 +154,7 @@ TESTS = \
        structs/bug690380.vala \
        structs/bug694140.vala \
        structs/bug749952.vala \
+       structs/bug764041.test \
        structs/bug775761.vala \
        structs/bug777194.vala \
        delegates/casting.vala \
diff --git a/tests/structs/bug764041.test b/tests/structs/bug764041.test
new file mode 100644 (file)
index 0000000..1911cda
--- /dev/null
@@ -0,0 +1,10 @@
+Invalid Code
+
+struct N {
+       public int i;
+}
+
+void main() {
+       N n = { 42 };
+       Value v = n;
+}