]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: support renaming fields in metadata
authorEvan Nemerson <evan@coeus-group.com>
Wed, 20 Feb 2013 22:01:37 +0000 (14:01 -0800)
committerEvan Nemerson <evan@coeus-group.com>
Wed, 20 Feb 2013 22:04:37 +0000 (14:04 -0800)
Previously we allowed metadata to change field names, but did not set
the cname CCode attribute, which would cause invalid C to be generated.

vala/valagirparser.vala

index f58345c5a5e91d904b7e289000a627378d0dc4be..b6cbe1634b3d3aea9f1510bb8feac416bfb60f0b 100644 (file)
@@ -2670,9 +2670,15 @@ public class Vala.GirParser : CodeVisitor {
                bool no_array_length = true;
                type = element_get_type (type, true, ref no_array_length);
 
-               var field = new Field (current.name, type, null, current.source_reference);
+               string name = current.name;
+               string cname = current.girdata["name"];
+
+               var field = new Field (name, type, null, current.source_reference);
                field.access = SymbolAccessibility.PUBLIC;
                field.comment = comment;
+               if (name != cname) {
+                       field.set_attribute_string ("CCode", "cname", cname);
+               }
                if (type is ArrayType) {
                        if (no_array_length) {
                                field.set_attribute_bool ("CCode", "array_length", false);