diff options
author | Raffaele Sandrini <raffaele@sandrini.ch> | 2007-09-20 13:02:59 +0000 |
---|---|---|
committer | Raffaele Sandrini <rasa@src.gnome.org> | 2007-09-20 13:02:59 +0000 |
commit | 3b909493de71c79f1661071f2a3be7cd26bc5446 (patch) | |
tree | 0e23e0aa400285ab9a46a7302d476982f21a7629 | |
parent | 0f8c952b1b7a981fcd5efd1e24955a9f30d7527f (diff) | |
download | vala-3b909493de71c79f1661071f2a3be7cd26bc5446.tar.gz |
Add support for ownership transfer with properties using the HASH (#)
2007-09-20 Raffaele Sandrini <raffaele@sandrini.ch>
* vala/parser.y: Add support for ownership transfer with properties
using the HASH (#) modifier e.g. public string!# foo { get; set; }
svn path=/trunk/; revision=623
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | vala/parser.y | 14 |
2 files changed, 19 insertions, 0 deletions
@@ -1,5 +1,10 @@ 2007-09-20 Raffaele Sandrini <raffaele@sandrini.ch> + * vala/parser.y: Add support for ownership transfer with properties + using the HASH (#) modifier. e.g. public string!# foo { get; set; } + +2007-09-20 Raffaele Sandrini <raffaele@sandrini.ch> + * vapi/glib-2.0.vala: add G.HashTable.size () 2007-09-20 Jürg Billeter <j@bitron.ch> diff --git a/vala/parser.y b/vala/parser.y index 4bc417dbe..c8ed310bd 100644 --- a/vala/parser.y +++ b/vala/parser.y @@ -3066,6 +3066,13 @@ property_declaration { ValaSourceReference *src; + /* HASH in property type context has the meaning of transferring + * ownership instead of taking it */ + if (vala_type_reference_get_takes_ownership ($5)) { + vala_type_reference_set_transfers_ownership ($5, TRUE); + vala_type_reference_set_takes_ownership ($5, FALSE); + } + if (!vala_type_reference_get_is_weak ($5)) { vala_type_reference_set_takes_ownership ($5, TRUE); } @@ -3099,6 +3106,13 @@ property_declaration { ValaSourceReference *src; + /* HASH in property type context has the meaning of transferring + * ownership instead of taking it */ + if (vala_type_reference_get_takes_ownership ($5)) { + vala_type_reference_set_transfers_ownership ($5, TRUE); + vala_type_reference_set_takes_ownership ($5, FALSE); + } + if (!vala_type_reference_get_is_weak ($5)) { vala_type_reference_set_takes_ownership ($5, TRUE); } |