summaryrefslogtreecommitdiff
path: root/gi/function.c
diff options
context:
space:
mode:
Diffstat (limited to 'gi/function.c')
-rw-r--r--gi/function.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gi/function.c b/gi/function.c
index 09bb09ff..2bacfde7 100644
--- a/gi/function.c
+++ b/gi/function.c
@@ -208,6 +208,7 @@ gjs_callback_closure(ffi_cif *cif,
if (!gjs_value_to_g_argument(invoke_info->context,
rval,
ret_type,
+ g_type_info_get_tag (ret_type),
"callback",
GJS_ARGUMENT_RETURN_VALUE,
FALSE,
@@ -721,6 +722,7 @@ gjs_invoke_c_function(JSContext *context,
/* Free GArgument, the jsval should have ref'd or copied it */
if (invoke_ok &&
!gjs_g_argument_release(context,
+ return_values[next_rval],
g_callable_info_get_caller_owns((GICallableInfo*) info),
return_info,
&return_arg))
@@ -750,6 +752,7 @@ gjs_invoke_c_function(JSContext *context,
g_assert(in_args_pos < expected_in_argc + destroy_notify_argc);
if (!gjs_g_argument_release_in_arg(context,
+ argv[i],
g_arg_info_get_ownership_transfer(arg_info),
arg_type_info,
&in_args[in_args_pos]))
@@ -774,6 +777,7 @@ gjs_invoke_c_function(JSContext *context,
/* Free GArgument, the jsval should have ref'd or copied it */
if (invoke_ok &&
!gjs_g_argument_release(context,
+ argv[i],
g_arg_info_get_ownership_transfer(arg_info),
arg_type_info,
out_args[out_args_pos].v_pointer))