=?utf-8?q?=5Bperl-Glib-Object-Introspection=5D_SV_=E2=86=92_union=3A_corr?= =?utf-8?q?ectly_handle_ownership_transfer?=



commit 3c0139e62afb56f1a971af41c0b30b3f4af3fbf8
Author: Torsten SchÃnfeld <kaffeetisch gmx de>
Date:   Fri Jan 25 17:35:07 2013 +0100

    SV â union: correctly handle ownership transfer

 gperl-i11n-marshal-interface.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/gperl-i11n-marshal-interface.c b/gperl-i11n-marshal-interface.c
index ed23e50..dc1496c 100644
--- a/gperl-i11n-marshal-interface.c
+++ b/gperl-i11n-marshal-interface.c
@@ -153,9 +153,12 @@ sv_to_interface (GIArgInfo * arg_info,
 			package = get_package_for_basename (namespace);
 			parent_type = find_union_member_gtype (package, name);
 			if (parent_type && parent_type != G_TYPE_NONE) {
-				/* FIXME: Check transfer setting. */
 				arg->v_pointer = gperl_get_boxed_check (
 				                   sv, parent_type);
+				if (GI_TRANSFER_EVERYTHING == transfer)
+					arg->v_pointer =
+						g_boxed_copy (parent_type,
+						              arg->v_pointer);
 			} else {
 				arg->v_pointer = sv_to_struct (transfer,
 				                               interface,



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