summaryrefslogtreecommitdiff
path: root/vapigen
diff options
context:
space:
mode:
authorDidier 'Ptitjes <ptitjes@free.fr>2009-04-29 00:50:04 +0200
committerJürg Billeter <j@bitron.ch>2009-05-07 18:32:45 +0200
commita1472539782383b3acc60c9ae5bbc7d16c0a826c (patch)
tree6aa079caf822ff229b8b38b5293eb9c176e2723a /vapigen
parente8f2dbe325cd698a9fc99041a930eec8312e5b45 (diff)
downloadvala-a1472539782383b3acc60c9ae5bbc7d16c0a826c.tar.gz
GIR parser: Fix allow-none attribute parsing in fields and return values
Signed-off-by: Didier 'Ptitjes <ptitjes@free.fr>
Diffstat (limited to 'vapigen')
-rw-r--r--vapigen/valagirparser.vala8
1 files changed, 8 insertions, 0 deletions
diff --git a/vapigen/valagirparser.vala b/vapigen/valagirparser.vala
index 0912ab1be..ef24ca59c 100644
--- a/vapigen/valagirparser.vala
+++ b/vapigen/valagirparser.vala
@@ -337,11 +337,15 @@ public class Vala.GirParser : CodeVisitor {
DataType parse_return_value (out string? ctype = null) {
start_element ("return-value");
string transfer = reader.get_attribute ("transfer-ownership");
+ string allow_none = reader.get_attribute ("allow-none");
next ();
var type = &ctype != null ? parse_type(out ctype) : parse_type ();
if (transfer == "full") {
type.value_owned = true;
}
+ if (allow_none == "1") {
+ type.nullable = true;
+ }
end_element ("return-value");
return type;
}
@@ -681,10 +685,14 @@ public class Vala.GirParser : CodeVisitor {
Field parse_field () {
start_element ("field");
string name = reader.get_attribute ("name");
+ string allow_none = reader.get_attribute ("allow-none");
next ();
var type = parse_type ();
var field = new Field (name, type, null, get_current_src ());
field.access = SymbolAccessibility.PUBLIC;
+ if (allow_none == "1") {
+ type.nullable = true;
+ }
end_element ("field");
return field;
}