[vala] GIR parser: Fix allow-none attribute parsing in fields and return values



commit a1472539782383b3acc60c9ae5bbc7d16c0a826c
Author: Didier 'Ptitjes <ptitjes free fr>
Date:   Wed Apr 29 00:50:04 2009 +0200

    GIR parser: Fix allow-none attribute parsing in fields and return values
    
    Signed-off-by: Didier 'Ptitjes <ptitjes free fr>
---
 vapigen/valagirparser.vala |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/vapigen/valagirparser.vala b/vapigen/valagirparser.vala
index 0912ab1..ef24ca5 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;
 	}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]