summaryrefslogtreecommitdiff
path: root/py/objfun.h
diff options
context:
space:
mode:
Diffstat (limited to 'py/objfun.h')
-rw-r--r--py/objfun.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/py/objfun.h b/py/objfun.h
index b6350d7b6..ddb148dd1 100644
--- a/py/objfun.h
+++ b/py/objfun.h
@@ -54,11 +54,21 @@ mp_obj_t mp_obj_new_fun_bc(const mp_obj_t *def_args, const byte *code, const mp_
void mp_obj_fun_bc_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest);
#if MICROPY_EMIT_NATIVE
+
static inline mp_obj_t mp_obj_new_fun_native(const mp_obj_t *def_args, const void *fun_data, const mp_module_context_t *mc, struct _mp_raw_code_t *const *child_table) {
mp_obj_fun_bc_t *o = MP_OBJ_TO_PTR(mp_obj_new_fun_bc(def_args, (const byte *)fun_data, mc, child_table));
o->base.type = &mp_type_fun_native;
return MP_OBJ_FROM_PTR(o);
}
+
+static inline mp_obj_t mp_obj_new_fun_viper(const void *fun_data, const mp_module_context_t *mc, struct _mp_raw_code_t *const *child_table) {
+ mp_obj_fun_bc_t *o = mp_obj_malloc(mp_obj_fun_bc_t, &mp_type_fun_viper);
+ o->bytecode = fun_data;
+ o->context = mc;
+ o->child_table = child_table;
+ return MP_OBJ_FROM_PTR(o);
+}
+
#endif
#if MICROPY_EMIT_INLINE_ASM