diff --git a/rts/wasm/JSFFI.c b/rts/wasm/JSFFI.c index 6883ff27d5cc06be43636cb85c02ffc79b30b30b..d5832ca66bf061719319ed377c5702fe8846f86d 100644 --- a/rts/wasm/JSFFI.c +++ b/rts/wasm/JSFFI.c @@ -83,6 +83,10 @@ JSValKey __imported_newJSVal(HsJSVal); __attribute__((import_module("ghc_wasm_jsffi"), import_name("freeJSVal"))) void __imported_freeJSVal(JSValKey); +static void __wrapped_freeJSVal(JSValKey k) { + __imported_freeJSVal(k); +} + HaskellObj rts_mkJSVal(Capability*, HsJSVal); HaskellObj rts_mkJSVal(Capability *cap, HsJSVal v) { JSValKey k = __imported_newJSVal(v); @@ -95,7 +99,7 @@ HaskellObj rts_mkJSVal(Capability *cap, HsJSVal v) { (StgCFinalizerList *)allocate(cap, sizeofW(StgCFinalizerList)); SET_HDR(cfin, &stg_C_FINALIZER_LIST_info, CCS_SYSTEM); cfin->link = &stg_NO_FINALIZER_closure; - cfin->fptr = (void (*)(void))__imported_freeJSVal; + cfin->fptr = (void (*)(void))__wrapped_freeJSVal; cfin->ptr = (void *)k; cfin->flag = 0;