summaryrefslogtreecommitdiff
path: root/vapigen
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2015-11-23 14:38:24 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2015-11-23 14:38:24 +0100
commitda27d783ded29d27ee61bbe04a5a0dbb1dd10d33 (patch)
treec3f87b81a8d6f05cf26ec472e677834ca5f960b6 /vapigen
parent328a328675e5d4b76111f72bb892fa32a03029d7 (diff)
downloadvala-da27d783ded29d27ee61bbe04a5a0dbb1dd10d33.tar.gz
gidlparser: Support transfer_container metadata for arrays
Diffstat (limited to 'vapigen')
-rw-r--r--vapigen/valagidlparser.vala7
1 files changed, 7 insertions, 0 deletions
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index f89885fe9..9bced0b93 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -2261,6 +2261,13 @@ public class Vala.GIdlParser : CodeVisitor {
if (eval (nv[1]) == "1") {
return_type.value_owned = true;
}
+ } else if (nv[0] == "transfer_container") {
+ if (eval (nv[1]) == "1") {
+ return_type.value_owned = true;
+ if (return_type is ArrayType) {
+ ((ArrayType) return_type).element_type.value_owned = false;
+ }
+ }
} else if (nv[0] == "destroys_instance") {
if (eval (nv[1]) == "1") {
m.set_attribute ("DestroysInstance", true, m.source_reference);