summaryrefslogtreecommitdiff
path: root/ext/ffi_c/Function.c
diff options
context:
space:
mode:
authorWatson <watson1978@gmail.com>2020-07-13 21:51:57 +0900
committerWatson <watson1978@gmail.com>2020-07-18 13:11:33 +0900
commit2c9c517876fd115191cd05f62ff8e77ebd493641 (patch)
treea612f3d1a970f707424c334e20b15492506957d4 /ext/ffi_c/Function.c
parentd15fa0615df0f20fbcf4b3c23a353a4ec002f555 (diff)
downloadffi-2c9c517876fd115191cd05f62ff8e77ebd493641.tar.gz
Use ffi_closure_alloc() on Apple silicon to fix crash
Diffstat (limited to 'ext/ffi_c/Function.c')
-rw-r--r--ext/ffi_c/Function.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/ffi_c/Function.c b/ext/ffi_c/Function.c
index 506d79b..b1d5a65 100644
--- a/ext/ffi_c/Function.c
+++ b/ext/ffi_c/Function.c
@@ -849,7 +849,7 @@ callback_prep(void* ctx, void* code, Closure* closure, char* errmsg, size_t errm
FunctionType* fnInfo = (FunctionType *) ctx;
ffi_status ffiStatus;
- ffiStatus = ffi_prep_closure_loc(code, &fnInfo->ffi_cif, callback_invoke, closure, code);
+ ffiStatus = ffi_prep_closure_loc(closure->pcl, &fnInfo->ffi_cif, callback_invoke, closure, code);
if (ffiStatus != FFI_OK) {
snprintf(errmsg, errmsgsize, "ffi_prep_closure_loc failed. status=%#x", ffiStatus);
return false;