summaryrefslogtreecommitdiff
path: root/ports/unix/modffi.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/unix/modffi.c')
-rw-r--r--ports/unix/modffi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ports/unix/modffi.c b/ports/unix/modffi.c
index 51beb355f..dc3ed4dc7 100644
--- a/ports/unix/modffi.c
+++ b/ports/unix/modffi.c
@@ -334,7 +334,8 @@ static mp_obj_t mod_ffi_callback(size_t n_args, const mp_obj_t *pos_args, mp_map
const char *rettype = mp_obj_str_get_str(rettype_in);
mp_int_t nparams = MP_OBJ_SMALL_INT_VALUE(mp_obj_len_maybe(paramtypes_in));
- mp_obj_fficallback_t *o = mp_obj_malloc_var(mp_obj_fficallback_t, params, ffi_type *, nparams, &fficallback_type);
+ mp_obj_fficallback_t *o = (mp_obj_fficallback_t *)m_tracked_calloc(offsetof(mp_obj_fficallback_t, params) + sizeof(ffi_type *) * nparams, sizeof(uint8_t));
+ o->base.type = &fficallback_type;
o->clo = ffi_closure_alloc(sizeof(ffi_closure), &o->func);