]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Avoid possible conflicts with internal property/signal defines
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 25 Oct 2017 11:10:41 +0000 (13:10 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 25 Oct 2017 11:10:41 +0000 (13:10 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=788964

codegen/valagtypemodule.vala
tests/Makefile.am
tests/objects/bug788964.vala [new file with mode: 0644]

index e75036041f3bab3b319c368a06a8453e39ba8116..aefcd0891f3d2aac8ba3b1529fd5ffb249ff186c 100644 (file)
@@ -553,7 +553,7 @@ public class Vala.GTypeModule : GErrorModule {
                }
 
                prop_enum = new CCodeEnum ();
-               prop_enum.add_value (new CCodeEnumValue ("%s_DUMMY_PROPERTY".printf (get_ccode_upper_case_name (cl, null))));
+               prop_enum.add_value (new CCodeEnumValue ("%s_0_PROPERTY".printf (get_ccode_upper_case_name (cl, null))));
                signal_enum = new CCodeEnum ();
                class_init_context = new EmitContext (cl);
                base_init_context = new EmitContext (cl);
@@ -565,7 +565,7 @@ public class Vala.GTypeModule : GErrorModule {
                generate_class_struct_declaration (cl, cfile);
                generate_class_private_declaration (cl, cfile);
 
-               var last_prop = "%s_LAST_PROPERTY".printf (get_ccode_upper_case_name (cl));
+               var last_prop = "%s_NUM_PROPERTIES".printf (get_ccode_upper_case_name (cl));
                if (is_gtypeinstance) {
                        cfile.add_type_declaration (prop_enum);
 
@@ -630,7 +630,7 @@ public class Vala.GTypeModule : GErrorModule {
                        prop_enum.add_value (new CCodeEnumValue (last_prop));
 
                        if (cl.get_signals ().size > 0) {
-                               var last_signal = "%s_LAST_SIGNAL".printf (get_ccode_upper_case_name (cl));
+                               var last_signal = "%s_NUM_SIGNALS".printf (get_ccode_upper_case_name (cl));
                                signal_enum.add_value (new CCodeEnumValue (last_signal));
                                cfile.add_type_declaration (signal_enum);
 
@@ -2094,7 +2094,7 @@ public class Vala.GTypeModule : GErrorModule {
                iface.accept_children (this);
 
                if (iface.get_signals ().size > 0) {
-                       var last_signal = "%s_LAST_SIGNAL".printf (get_ccode_upper_case_name (iface));
+                       var last_signal = "%s_NUM_SIGNALS".printf (get_ccode_upper_case_name (iface));
                        signal_enum.add_value (new CCodeEnumValue (last_signal));
                        cfile.add_type_declaration (signal_enum);
 
index 337dac7a42f1923979a54972dabc9f5254101a87..6f1874739c3433bd0d23591559203261faac0fb4 100644 (file)
@@ -241,6 +241,7 @@ TESTS = \
        objects/bug779219.vala \
        objects/bug779955.vala \
        objects/bug783897.vala \
+       objects/bug788964.vala \
        errors/errors.vala \
        errors/bug567181.vala \
        errors/bug579101.vala \
diff --git a/tests/objects/bug788964.vala b/tests/objects/bug788964.vala
new file mode 100644 (file)
index 0000000..4865568
--- /dev/null
@@ -0,0 +1,11 @@
+public class Foo : Object {
+       public signal void last ();
+}
+
+public class Bar : Object {
+       public string dummy { get; set; }
+       public string last { get; set; }
+}
+
+void main () {
+}