From 61bd5a3e20891623715604581b6e872ab3dfab80 Mon Sep 17 00:00:00 2001 From: Kleis Auke Wolthuizen Date: Fri, 25 Jun 2021 10:58:39 +0200 Subject: [PATCH] Avoid marshalling FFI_TYPE_LONGDOUBLE when WASM_BIGINT is not used --- src/wasm32/ffi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/wasm32/ffi.c b/src/wasm32/ffi.c index ae21258c..b10729e8 100644 --- a/src/wasm32/ffi.c +++ b/src/wasm32/ffi.c @@ -226,10 +226,12 @@ ffi_call, (ffi_cif * cif, ffi_fp fn, void *rvalue, void **avalue), SIG(sig += 'd'); break; case FFI_TYPE_LONGDOUBLE: - // emscripten doesn't define HEAPU64 by default - const HEAPU64 = new BigInt64Array(HEAP8.buffer); +#if WASM_BIGINT args.push(DEREF_U64(arg_ptr, 0)); args.push(DEREF_U64(arg_ptr, 1)); +#else + throw new Error('longdouble marshalling nyi'); +#endif break; case FFI_TYPE_UINT8: args.push(HEAPU8[arg_ptr]); @@ -479,7 +481,6 @@ ffi_prep_closure_loc_helper, } cur_ptr -= 4 * (sig.length - 1 - ret_by_arg); var args_ptr = cur_ptr; - var HEAPU64 = new BigInt64Array(HEAP8.buffer); for (var sig_idx = 1 + ret_by_arg; sig_idx < sig.length; sig_idx++) { var jsargs_idx = sig_idx - 1; var cargs_idx = jsargs_idx - ret_by_arg;