STATIC mp_obj_t fun_native_call(mp_obj_t self_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) { mp_obj_fun_native_t *self = self_in; mp_arg_check_num(n_args, n_kw, self->n_args, self->n_args, false); void *fun = MICROPY_MAKE_POINTER_CALLABLE(self->fun_data); switch (n_args) { case 0: return ((native_fun_0_t)fun)(); case 1: return ((native_fun_1_t)fun)(args[0]); case 2: return ((native_fun_2_t)fun)(args[0], args[1]); case 3: return ((native_fun_3_t)fun)(args[0], args[1], args[2]); default: assert(0); return mp_const_none; } }
STATIC mp_obj_t fun_native_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const mp_obj_t *args) { MP_STACK_CHECK(); mp_obj_fun_bc_t *self = self_in; mp_call_fun_t fun = MICROPY_MAKE_POINTER_CALLABLE((void*)self->bytecode); return fun(self_in, n_args, n_kw, args); }