From f5b7f644b05f27f07a5419360262c4db0bc274d0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Wed, 25 Mar 2009 22:07:05 +0100 Subject: [PATCH] vapigen: Support transfer_ownership for delegates Add attribute to support owned delegate return values. --- vapigen/valagidlparser.vala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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; + } } } } -- 2.47.2