Skip to content

Commit b1ae155

Browse files
committed
Solved minor bug in C Loader related to libffi.
1 parent 5033921 commit b1ae155

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

source/loaders/c_loader/source/c_loader_impl.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,13 @@ function_return function_c_interface_invoke(function func, function_impl impl, f
195195
c_function->values[args_count] = value_data((value)args[args_count]);
196196
}
197197

198-
type_id ret_id = type_index(signature_get_return(s));
199-
void *ret = value_type_create(NULL, value_type_id_size(ret_id), ret_id);
198+
ffi_arg result;
199+
200+
ffi_call(&c_function->cif, FFI_FN(c_function->address), &result, args);
200201

201-
ffi_call(&c_function->cif, FFI_FN(c_function->address), ret, args);
202+
type_id ret_id = type_index(signature_get_return(s));
202203

203-
return ret;
204+
return value_type_create(&result, value_type_id_size(ret_id), ret_id);
204205
}
205206

206207
function_return function_c_interface_await(function func, function_impl impl, function_args args, size_t size, function_resolve_callback resolve_callback, function_reject_callback reject_callback, void *context)

0 commit comments

Comments
 (0)