[vala/0.36] girwriter: Support transfer-ownership="container" for arrays



commit f194fe0163bb2ec3fdc7bd26eddb440d336f54bc
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Tue Feb 26 14:10:35 2019 +0100

    girwriter: Support transfer-ownership="container" for arrays

 codegen/valagirwriter.vala | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala
index 7caeae0c4..6e073541a 100644
--- a/codegen/valagirwriter.vala
+++ b/codegen/valagirwriter.vala
@@ -1237,7 +1237,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;
@@ -1246,6 +1247,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\"");
                        }


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