[vala/staging] codegen: Fix get_ccode_name() for properties



commit ee3868de6989d69abd2a028c21db7468067e8ab2
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Tue Jun 12 15:40:01 2018 +0200

    codegen: Fix get_ccode_name() for properties
    
    Handle them the same way as signals and hold the canonical representation
    as ccode name.

 codegen/valaccodeattribute.vala  | 2 ++
 codegen/valaccodebasemodule.vala | 4 ++--
 codegen/valagirwriter.vala       | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/codegen/valaccodeattribute.vala b/codegen/valaccodeattribute.vala
index 3740d232a..0b89230e8 100644
--- a/codegen/valaccodeattribute.vala
+++ b/codegen/valaccodeattribute.vala
@@ -692,6 +692,8 @@ public class Vala.CCodeAttribute : AttributeCache {
                                } else {
                                        return "%s%s".printf (get_ccode_lower_case_prefix 
(sym.parent_symbol), sym.name);
                                }
+                       } else if (sym is Property) {
+                               return sym.name.replace ("_", "-");
                        } else if (sym is PropertyAccessor) {
                                unowned PropertyAccessor acc = (PropertyAccessor) sym;
                                var t = (TypeSymbol) acc.prop.parent_symbol;
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 3f277f737..0c22ef404 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -3893,7 +3893,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
        }
 
        public string get_symbol_lock_name (string symname) {
-               return "__lock_%s".printf (symname);
+               return "__lock_%s".printf (symname.replace ("-", "_"));
        }
 
        private CCodeExpression get_lock_expression (Statement stmt, Expression resource) {
@@ -6356,7 +6356,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
        }
 
        public CCodeConstant get_property_canonical_cconstant (Property prop) {
-               return new CCodeConstant ("\"%s\"".printf (prop.name.replace ("_", "-")));
+               return new CCodeConstant ("\"%s\"".printf (get_ccode_name (prop)));
        }
 
        public override void visit_class (Class cl) {
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala
index 834396cf2..a35036a06 100644
--- a/codegen/valagirwriter.vala
+++ b/codegen/valagirwriter.vala
@@ -1132,7 +1132,7 @@ public class Vala.GIRWriter : CodeVisitor {
                }
 
                write_indent ();
-               buffer.append_printf ("<property name=\"%s\"", prop.name.replace ("_", "-"));
+               buffer.append_printf ("<property name=\"%s\"", get_ccode_name (prop));
                if (prop.get_accessor == null) {
                        buffer.append_printf (" readable=\"0\"");
                }


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