From: Marc-André Lureau Date: Sat, 15 Nov 2014 01:52:52 +0000 (+0100) Subject: vapigen: add delegate_target_cname X-Git-Tag: 0.27.1~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e97c9f50c05756e58d96c3b2d56d6a3f57008138;p=thirdparty%2Fvala.git vapigen: add delegate_target_cname Fixes bug 740154 --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index f179a30fc..270bd21d8 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -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; diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index ff7c8d0b8..0dc7fe739 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -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])); } } }