From d6c200a067c7c48de5a40d2ef839eacb833f171c Mon Sep 17 00:00:00 2001 From: Jeremy Yallop Date: Sat, 18 Jun 2016 13:04:15 +0100 Subject: [PATCH] Handle small integer return types correctly in callbacks on big-endian platforms. --- src/ctypes-foreign-base/ffi_call_stubs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ctypes-foreign-base/ffi_call_stubs.c b/src/ctypes-foreign-base/ffi_call_stubs.c index 7a844ed9..af5f2149 100644 --- a/src/ctypes-foreign-base/ffi_call_stubs.c +++ b/src/ctypes-foreign-base/ffi_call_stubs.c @@ -462,7 +462,7 @@ static void callback_handler_with_lock(ffi_cif *cif, /* now store the return value */ assert (Tag_val(boxedfn) == Done); - argptr = CTYPES_FROM_PTR(ret); + argptr = CTYPES_FROM_PTR(ret + ffi_return_type_adjustment(cif->rtype)); caml_callback(Field(boxedfn, 0), argptr); CAMLreturn0;