]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Support takes_ownership attribute for delegate parameters
authorAli Sabil <ali.sabil@gmail.com>
Tue, 17 Feb 2009 11:51:19 +0000 (11:51 +0000)
committerAli Sabil <asabil@src.gnome.org>
Tue, 17 Feb 2009 11:51:19 +0000 (11:51 +0000)
2009-02-17  Ali Sabil  <ali.sabil@gmail.com>

* vapigen/valagidlparser.vala:

Support takes_ownership attribute for delegate parameters

svn path=/trunk/; revision=2449

ChangeLog
vapigen/valagidlparser.vala

index 639326f13df526b61d0f2ed0f5347c4fd24e37f0..7cef3ea41668dfee8ce6fe73c2a5e748ff1bd1e7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-02-17  Ali Sabil  <ali.sabil@gmail.com>
+
+       * vapigen/valagidlparser.vala:
+
+       Support takes_ownership attribute for delegate parameters
+
 2009-02-17  Ali Sabil  <ali.sabil@gmail.com>
 
        * vapi/gstreamer-rtp-0.10.vapi: regenerated
index 3cebf3651f85387127e8bbbbc49574311a7b596c..8e8136001818fd1ba1f247e9b60adee88873de4b 100644 (file)
@@ -335,7 +335,8 @@ public class Vala.GIdlParser : CodeVisitor {
                                }
 
                                ParameterDirection direction;
-                               var p = new FormalParameter (param_name, parse_param (param, out direction));
+                               var param_type = parse_param (param, out direction);
+                               var p = new FormalParameter (param_name, param_type);
                                p.direction = direction;
 
                                bool hide_param = false;
@@ -350,6 +351,10 @@ public class Vala.GIdlParser : CodeVisitor {
                                                        } else if (eval (nv[1]) == "0") {
                                                                show_param = true;
                                                        }
+                                               } else if (nv[0] == "takes_ownership") {
+                                                       if (eval (nv[1]) == "1") {
+                                                               param_type.value_owned = true;
+                                                       }
                                                }
                                        }
                                }