]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vapigen: add delegate_target_cname
authorMarc-André Lureau <marcandre.lureau@gmail.com>
Sat, 15 Nov 2014 01:52:52 +0000 (02:52 +0100)
committerLuca Bruno <lucabru@src.gnome.org>
Sat, 15 Nov 2014 13:20:26 +0000 (14:20 +0100)
Fixes bug 740154

vala/valagirparser.vala
vapigen/valagidlparser.vala

index f179a30fc678bf84ffa5e86f8e8e7d143fa356ec..270bd21d88f4759bd198bf4994d3512d8cfd321a 100644 (file)
@@ -79,7 +79,8 @@ public class Vala.GirParser : CodeVisitor {
                EXPERIMENTAL,
                FLOATING,
                TYPE_ID,
-               RETURN_VOID;
+               RETURN_VOID,
+               DELEGATE_TARGET_CNAME;
 
                public static ArgumentType? from_string (string name) {
                        var enum_class = (EnumClass) typeof(ArgumentType).class_ref ();
@@ -1030,6 +1031,10 @@ public class Vala.GirParser : CodeVisitor {
                                                merged = true;
                                        }
 
+                                       if (metadata.has_argument (ArgumentType.DELEGATE_TARGET_CNAME)) {
+                                               field.set_attribute_string ("CCode", "delegate_target_cname", metadata.get_string (ArgumentType.DELEGATE_TARGET_CNAME));
+                                       }
+
                                        if (field.variable_type is DelegateType && parent.gtype_struct_for != null) {
                                                // virtual method field
                                                var d = ((DelegateType) field.variable_type).delegate_symbol;
index ff7c8d0b8b811458643b76447dcd9220bcbba351..0dc7fe739a4c6019b18ba733b6f68b8e1cd0dac2 100644 (file)
@@ -928,6 +928,8 @@ public class Vala.GIdlParser : CodeVisitor {
                                                        if (eval (nv[1]) == "1") {
                                                                cl.set_attribute ("Experimental", true);
                                                        }
+                                               } else if (nv[0] == "delegate_target_cname") {
+                                                       cl.set_attribute_string ("CCode", "delegate_target_cname", eval (nv[1]));
                                                }
                                        }
                                }