[perl-Glib-Object-Introspection] Handle transfer setting for SV → string and filename
- From: Torsten Schönfeld <tsch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [perl-Glib-Object-Introspection] Handle transfer setting for SV → string and filename
- Date: Tue, 9 Nov 2010 23:06:00 +0000 (UTC)
commit 8cbf4d8faebffaaf7e980ae74dd29acd81641383
Author: Torsten Schönfeld <kaffeetisch gmx de>
Date: Tue Nov 9 23:42:12 2010 +0100
Handle transfer setting for SV â?? string and filename
GObjectIntrospection.xs | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/GObjectIntrospection.xs b/GObjectIntrospection.xs
index 32a70bd..d8506fa 100644
--- a/GObjectIntrospection.xs
+++ b/GObjectIntrospection.xs
@@ -1040,13 +1040,16 @@ sv_to_arg (SV * sv,
break;
case GI_TYPE_TAG_UTF8:
- /* FIXME: Check transfer setting. */
- arg->v_string = SvOK (sv) ? SvGChar (sv) : NULL;
+ arg->v_string = gperl_sv_is_defined (sv) ? SvGChar (sv) : NULL;
+ if (transfer == GI_TRANSFER_EVERYTHING)
+ arg->v_string = g_strdup (arg->v_string);
break;
case GI_TYPE_TAG_FILENAME:
- /* FIXME: Check transfer setting. */
- arg->v_string = SvOK (sv) ? gperl_filename_from_sv (sv) : NULL;
+ /* FIXME: Is it correct to use gperl_filename_from_sv here? */
+ arg->v_string = gperl_sv_is_defined (sv) ? gperl_filename_from_sv (sv) : NULL;
+ if (transfer == GI_TRANSFER_EVERYTHING)
+ arg->v_string = g_strdup (arg->v_string);
break;
default:
@@ -1138,6 +1141,7 @@ arg_to_sv (GArgument * arg,
case GI_TYPE_TAG_FILENAME:
{
+ /* FIXME: Is it correct to use gperl_sv_from_filename here? */
SV *sv = gperl_sv_from_filename (arg->v_string);
if (own)
g_free (arg->v_string);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]