[vala/0.40] Consistently use get_ccode_lower_case_prefix() for function names



commit 0db3d7a22b6510d0cbe7c797356e50d5aa5e52e9
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sun Jun 14 08:59:51 2020 +0200

    Consistently use get_ccode_lower_case_prefix() for function names
    
    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         |  6 +++---
 codegen/valagtypemodule.vala           |  2 +-
 tests/Makefile.am                      |  1 +
 tests/objects/class-ccode-cprefix.vala | 23 +++++++++++++++++++++++
 valadoc/treebuilder.vala               |  2 +-
 5 files changed, 29 insertions(+), 5 deletions(-)
---
diff --git a/codegen/valagobjectmodule.vala b/codegen/valagobjectmodule.vala
index af71e4683..10cf04e49 100644
--- a/codegen/valagobjectmodule.vala
+++ b/codegen/valagobjectmodule.vala
@@ -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 */
@@ -477,7 +477,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"));
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index 080f22c0e..ba35b4f97 100644
--- a/codegen/valagtypemodule.vala
+++ b/codegen/valagtypemodule.vala
@@ -1752,7 +1752,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;
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 25153149c..78b746d99 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -307,6 +307,7 @@ TESTS = \
        delegates/bug772204.test \
        delegates/bug792077.vala \
        objects/chainup.vala \
+       objects/class-ccode-cprefix.vala \
        objects/class-destroysinstance.vala \
        objects/classes.vala \
        objects/compact-class-destructor.vala \
diff --git a/tests/objects/class-ccode-cprefix.vala b/tests/objects/class-ccode-cprefix.vala
new file mode 100644
index 000000000..dba5643c2
--- /dev/null
+++ b/tests/objects/class-ccode-cprefix.vala
@@ -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 () {
+}
diff --git a/valadoc/treebuilder.vala b/valadoc/treebuilder.vala
index a5c79f9db..f0e710b58 100644
--- a/valadoc/treebuilder.vala
+++ b/valadoc/treebuilder.vala
@@ -297,7 +297,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                        return null;
                }
 
-               return "%s_finalize".printf (Vala.get_ccode_lower_case_name (element, null));
+               return "%sfinalize".printf (Vala.get_ccode_lower_case_prefix (element));
        }
 
        private string? get_free_function_name (Vala.Class element) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]