diff options
Diffstat (limited to 'py')
-rw-r--r-- | py/obj.h | 1 | ||||
-rw-r--r-- | py/objmodule.c | 5 |
2 files changed, 6 insertions, 0 deletions
@@ -456,6 +456,7 @@ typedef struct _mp_obj_module_t { extern const mp_obj_type_t mp_type_module; mp_obj_t mp_obj_new_module(qstr module_name); mp_obj_t mp_obj_module_get(qstr module_name); +void mp_obj_module_register(qstr qstr, mp_obj_t module); //use for loading statically allocated modules struct _mp_map_t *mp_obj_module_get_globals(mp_obj_t self_in); // staticmethod and classmethod types; defined here so we can make const versions diff --git a/py/objmodule.c b/py/objmodule.c index e0778b4cf2..21fec9e866 100644 --- a/py/objmodule.c +++ b/py/objmodule.c @@ -82,6 +82,11 @@ mp_obj_t mp_obj_module_get(qstr module_name) { return MP_OBJ_NULL; } +void mp_obj_module_register(qstr qstr, mp_obj_t module) +{ + mp_map_lookup(rt_loaded_modules_get(), MP_OBJ_NEW_QSTR(qstr), MP_MAP_LOOKUP_ADD_IF_NOT_FOUND)->value = module; +} + mp_map_t *mp_obj_module_get_globals(mp_obj_t self_in) { assert(MP_OBJ_IS_TYPE(self_in, &mp_type_module)); mp_obj_module_t *self = self_in; |