From: Evan Nemerson Date: Mon, 26 May 2014 02:39:48 +0000 (-0700) Subject: girparser: support return_void metadata argument X-Git-Tag: 0.25.1~76 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=beff49b10b7101154fd99620940034fec0d4bb02;p=thirdparty%2Fvala.git girparser: support return_void metadata argument This allows us to generate backwards compatible signatures for functions with a void return value and a single out param for a struct from metadata files instead of resorting to *-custom.vala. --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index b99cd5124..d60dffb01 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -78,7 +78,8 @@ public class Vala.GirParser : CodeVisitor { INSTANCE_IDX, EXPERIMENTAL, FLOATING, - TYPE_ID; + TYPE_ID, + RETURN_VOID; public static ArgumentType? from_string (string name) { var enum_class = (EnumClass) typeof(ArgumentType).class_ref (); @@ -3440,8 +3441,10 @@ public class Vala.GirParser : CodeVisitor { if (last_param.param.variable_type is UnresolvedType) { var st = resolve_symbol (node.parent, ((UnresolvedType) last_param.param.variable_type).unresolved_symbol) as Struct; if (st != null && !st.is_simple_type () && !last_param.param.variable_type.nullable) { - last_param.keep = false; - return_type = last_param.param.variable_type.copy (); + if (!node.metadata.get_bool (ArgumentType.RETURN_VOID, false)) { + last_param.keep = false; + return_type = last_param.param.variable_type.copy (); + } } } }