From: Rico Tzschichholz Date: Tue, 26 Feb 2019 13:10:35 +0000 (+0100) Subject: girwriter: Support transfer-ownership="container" for arrays X-Git-Tag: 0.43.92~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=95429f6a871ae122a326e46641c069412304fb6b;p=thirdparty%2Fvala.git girwriter: Support transfer-ownership="container" for arrays --- diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index c01912167..a1a82cd7b 100644 --- a/codegen/valagirwriter.vala +++ b/codegen/valagirwriter.vala @@ -1239,7 +1239,8 @@ public class Vala.GIRWriter : CodeVisitor { buffer.append_printf (" direction=\"out\""); } - DelegateType delegate_type = type as DelegateType; + unowned DelegateType? delegate_type = type as DelegateType; + unowned ArrayType? array_type = type as ArrayType; if (type != null && ((type.value_owned && delegate_type == null) || (constructor && !type.data_type.is_subtype_of (ginitiallyunowned_type)))) { var any_owned = false; @@ -1248,6 +1249,8 @@ public class Vala.GIRWriter : CodeVisitor { } if (type.has_type_arguments () && !any_owned) { buffer.append_printf (" transfer-ownership=\"container\""); + } else if (array_type != null && !array_type.element_type.value_owned) { + buffer.append_printf (" transfer-ownership=\"container\""); } else { buffer.append_printf (" transfer-ownership=\"full\""); }