]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Consistently use get_ccode_lower_case_prefix() for function names
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 14 Jun 2020 06:59:51 +0000 (08:59 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 14 Jun 2020 07:44:34 +0000 (09:44 +0200)
Create the expected name for "constructor" and "finalize" functions
which are non-public API.

Fixes https://gitlab.gnome.org/GNOME/vala/issues/1008

codegen/valagobjectmodule.vala
codegen/valagtypemodule.vala
libvaladoc/api/class.vala
tests/Makefile.am
tests/objects/class-ccode-cprefix.vala [new file with mode: 0644]

index 674f18d8aa325a71fb30bf8bd69963d2329511a7..f095e5e5ed094393735ffca0baf3e3dc2b039088 100644 (file)
@@ -63,14 +63,14 @@ public class Vala.GObjectModule : GTypeModule {
                if (cl.constructor != null) {
                        var ccast = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
                        ccast.add_argument (new CCodeIdentifier ("klass"));
-                       ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "constructor"), new CCodeIdentifier ("%s_constructor".printf (get_ccode_lower_case_name (cl, null))));
+                       ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "constructor"), new CCodeIdentifier ("%sconstructor".printf (get_ccode_lower_case_prefix (cl))));
                }
 
                /* set finalize function */
                if (cl.get_fields ().size > 0 || cl.destructor != null) {
                        var ccast = new CCodeFunctionCall (new CCodeIdentifier ("G_OBJECT_CLASS"));
                        ccast.add_argument (new CCodeIdentifier ("klass"));
-                       ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "finalize"), new CCodeIdentifier ("%s_finalize".printf (get_ccode_lower_case_name (cl, null))));
+                       ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, "finalize"), new CCodeIdentifier ("%sfinalize".printf (get_ccode_lower_case_prefix (cl))));
                }
 
                /* create type, dup_func, and destroy_func properties for generic types */
@@ -484,7 +484,7 @@ public class Vala.GObjectModule : GTypeModule {
 
                        push_context (new EmitContext (c));
 
-                       var function = new CCodeFunction ("%s_constructor".printf (get_ccode_lower_case_name (cl, null)), "GObject *");
+                       var function = new CCodeFunction ("%sconstructor".printf (get_ccode_lower_case_prefix (cl)), "GObject *");
                        function.modifiers = CCodeModifiers.STATIC;
 
                        function.add_parameter (new CCodeParameter ("type", "GType"));
index 4e8c917024d76f082b77fbd919f35a1b30dd6f26..4757b0165d75ca3ec1d17ab280346c50d492571d 100644 (file)
@@ -1727,7 +1727,7 @@ public class Vala.GTypeModule : GErrorModule {
                                fundamental_class = fundamental_class.base_class;
                        }
 
-                       var func = new CCodeFunction ("%s_finalize".printf (get_ccode_lower_case_name (cl, null)));
+                       var func = new CCodeFunction ("%sfinalize".printf (get_ccode_lower_case_prefix (cl)));
                        func.add_parameter (new CCodeParameter ("obj", "%s *".printf (get_ccode_name (fundamental_class))));
                        func.modifiers = CCodeModifiers.STATIC;
 
index 02f4917d16f6ae6682f7ce8f2ea6c61bcd9b991b..0dd8433c8fad8fbb0fb92817b0eb2ec4a4796734 100644 (file)
@@ -69,7 +69,7 @@ public class Valadoc.Api.Class : TypeSymbol {
 
                this.unref_function_name = Vala.get_ccode_unref_function (data);
                this.ref_function_name = Vala.get_ccode_ref_function (data);
-               this.finalize_function_name = (data.is_fundamental () ? "%s_finalize".printf (Vala.get_ccode_lower_case_name (data, null)) : null);
+               this.finalize_function_name = (data.is_fundamental () ? "%sfinalize".printf (Vala.get_ccode_lower_case_prefix (data)) : null);
                this.free_function_name = (data.is_compact ? Vala.get_ccode_free_function (data) : null);
 
                this.take_value_function_cname = Vala.get_ccode_take_value_function (data);
index aeb1796fb7b3bac9e3cace4719c8d0c049562386..c871a48667d6785d2fa415a613a07d358babfd48 100644 (file)
@@ -354,6 +354,7 @@ TESTS = \
        delegates/bug772204.test \
        delegates/bug792077.vala \
        objects/chainup.vala \
+       objects/class-ccode-cprefix.vala \
        objects/class_only.vala \
        objects/class-destroysinstance.vala \
        objects/class-inner-types.vala \
diff --git a/tests/objects/class-ccode-cprefix.vala b/tests/objects/class-ccode-cprefix.vala
new file mode 100644 (file)
index 0000000..dba5643
--- /dev/null
@@ -0,0 +1,23 @@
+[CCode (lower_case_cprefix = "bar_")]
+public class Foo : Object {
+       public Foo () {
+       }
+
+       construct {
+       }
+
+       ~Foo () {
+       }
+}
+
+[CCode (lower_case_cprefix = "baz_")]
+public class Manam {
+       public Manam () {
+       }
+
+       ~Manam () {
+       }
+}
+
+void main () {
+}