[vala] GIRWriter: Properly emit transfer-ownership=container
- From: Michal Hruby <mhruby src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] GIRWriter: Properly emit transfer-ownership=container
- Date: Wed, 5 Jun 2013 23:19:00 +0000 (UTC)
commit 1b1d46e187a9a90fb7abaa9847fee3bd1ac8c69d
Author: Michal Hruby <michal mhr gmail com>
Date: Thu Jun 6 00:18:09 2013 +0100
GIRWriter: Properly emit transfer-ownership=container
codegen/valagirwriter.vala | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala
index 612fafe..6f61af5 100644
--- a/codegen/valagirwriter.vala
+++ b/codegen/valagirwriter.vala
@@ -1191,7 +1191,15 @@ public class Vala.GIRWriter : CodeVisitor {
DelegateType delegate_type = type as DelegateType;
if ((type.value_owned && delegate_type == null) || (constructor &&
!type.data_type.is_subtype_of (ginitiallyunowned_type))) {
- buffer.append_printf (" transfer-ownership=\"full\"");
+ var any_owned = false;
+ foreach (var generic_arg in type.get_type_arguments ()) {
+ any_owned |= generic_arg.value_owned;
+ }
+ if (type.has_type_arguments () && !any_owned) {
+ buffer.append_printf (" transfer-ownership=\"container\"");
+ } else {
+ buffer.append_printf (" transfer-ownership=\"full\"");
+ }
} else {
buffer.append_printf (" transfer-ownership=\"none\"");
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]