From: Jürg Billeter Date: Wed, 25 Mar 2009 21:07:05 +0000 (+0100) Subject: vapigen: Support transfer_ownership for delegates X-Git-Tag: 0.6.0~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5b7f644b05f27f07a5419360262c4db0bc274d0;p=thirdparty%2Fvala.git vapigen: Support transfer_ownership for delegates Add attribute to support owned delegate return values. --- diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index 79dd6b596..81d38eb83 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -292,7 +292,9 @@ public class Vala.GIdlParser : CodeVisitor { private Delegate? parse_delegate (IdlNodeFunction f_node) { weak IdlNode node = (IdlNode) f_node; - var cb = new Delegate (node.name, parse_param (f_node.result), current_source_reference); + var return_type = parse_param (f_node.result); + + var cb = new Delegate (node.name, return_type, current_source_reference); cb.access = SymbolAccessibility.PUBLIC; bool check_has_target = true; @@ -313,6 +315,10 @@ public class Vala.GIdlParser : CodeVisitor { } else if (eval (nv[1]) == "1") { cb.has_target = true; } + } else if (nv[0] == "transfer_ownership") { + if (eval (nv[1]) == "1") { + return_type.value_owned = true; + } } } }