[vala] vapigen: Support transfer_ownership for delegates



commit f5b7f644b05f27f07a5419360262c4db0bc274d0
Author: Jürg Billeter <j bitron ch>
Date:   Wed Mar 25 22:07:05 2009 +0100

    vapigen: Support transfer_ownership for delegates
    
    Add attribute to support owned delegate return values.
---
 vapigen/valagidlparser.vala |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index 79dd6b5..81d38eb 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;
+					}
 				}
 			}
 		}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]