use proper pointer conversion macros in ffi.c

This commit is contained in:
dzaima 2023-05-12 19:33:00 +03:00
parent f229b3c486
commit 2f51974c2f

View File

@ -726,7 +726,7 @@ B libffiFn_c2(B t, B w, B x) {
BoundFn* bf = c(BoundFn,t);
B argObj = c(HArr,bf->obj)->a[0];
u32 flags = (u64)bf->w_c1;
u32 flags = ptr2u64(bf->w_c1);
Arr* wa ONLY_GCC(=0); AS2B wf ONLY_GCC(=0);
Arr* xa ONLY_GCC(=0); AS2B xf ONLY_GCC(=0);
@ -925,7 +925,7 @@ B ffiload_c2(B t, B w, B x) {
if (s!=FFI_OK) thrM("FFI: Error preparing call interface");
// mm_free(argsRaw)
u32 flags = many[1] | many[0]<<1 | tRes.resSingle<<2;
B r = m_ffiFn(foreignFnDesc, m_hvec3(argObj, tag(cif, OBJ_TAG), tag(argsRaw, OBJ_TAG)), libffiFn_c1, libffiFn_c2, (void*)(u64)flags, sym);
B r = m_ffiFn(foreignFnDesc, m_hvec3(argObj, tag(cif, OBJ_TAG), tag(argsRaw, OBJ_TAG)), libffiFn_c1, libffiFn_c2, TOPTR(void,flags), sym);
c(BoundFn,r)->mutCount = mutCount;
return r;
#endif