]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vapigen: Support transfer_ownership for delegates
authorJürg Billeter <j@bitron.ch>
Wed, 25 Mar 2009 21:07:05 +0000 (22:07 +0100)
committerJürg Billeter <j@bitron.ch>
Wed, 25 Mar 2009 21:07:05 +0000 (22:07 +0100)
Add attribute to support owned delegate return values.

vapigen/valagidlparser.vala

index 79dd6b596a1fe2b5d490af4e3cfcc1e46a2ec0c0..81d38eb83b7c67cde95de41d2591d0d3f1aaa03f 100644 (file)
@@ -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;
+                                       }
                                }
                        }
                }