From e9cb1f807762f8adc1f5b6220b616ce6daf1303f Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 26 Jan 2017 23:30:38 +1100 Subject: [PATCH] py/objmodule: Move module init/deinit code into runtime functions. They are one-line functions and having them inline in mp_init/mp_deinit eliminates the overhead of a function call, and matches how other state is initialised in mp_init. --- py/objmodule.c | 8 -------- py/objmodule.h | 2 -- py/runtime.c | 6 +++--- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/py/objmodule.c b/py/objmodule.c index a0a179de4b..43bb36b98c 100644 --- a/py/objmodule.c +++ b/py/objmodule.c @@ -237,14 +237,6 @@ STATIC const mp_rom_map_elem_t mp_builtin_module_weak_links_table[] = { MP_DEFINE_CONST_MAP(mp_builtin_module_weak_links_map, mp_builtin_module_weak_links_table); #endif -void mp_module_init(void) { - mp_obj_dict_init(&MP_STATE_VM(mp_loaded_modules_dict), 3); -} - -void mp_module_deinit(void) { - //mp_map_deinit(&MP_STATE_VM(mp_loaded_modules_map)); -} - // returns MP_OBJ_NULL if not found mp_obj_t mp_module_get(qstr module_name) { mp_map_t *mp_loaded_modules_map = &MP_STATE_VM(mp_loaded_modules_dict).map; diff --git a/py/objmodule.h b/py/objmodule.h index 937ff84168..4e6612adc7 100644 --- a/py/objmodule.h +++ b/py/objmodule.h @@ -31,8 +31,6 @@ extern const mp_map_t mp_builtin_module_map; extern const mp_map_t mp_builtin_module_weak_links_map; -void mp_module_init(void); -void mp_module_deinit(void); mp_obj_t mp_module_get(qstr module_name); void mp_module_register(qstr qstr, mp_obj_t module); diff --git a/py/runtime.c b/py/runtime.c index 9d2c0ef465..0ccfd8d874 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -85,8 +85,8 @@ void mp_init(void) { // optimization disabled by default MP_STATE_VM(mp_optimise_value) = 0; - // init global module stuff - mp_module_init(); + // init global module dict + mp_obj_dict_init(&MP_STATE_VM(mp_loaded_modules_dict), 3); // initialise the __main__ module mp_obj_dict_init(&MP_STATE_VM(dict_main), 1); @@ -114,7 +114,7 @@ void mp_init(void) { void mp_deinit(void) { //mp_obj_dict_free(&dict_main); - mp_module_deinit(); + //mp_map_deinit(&MP_STATE_VM(mp_loaded_modules_map)); // call port specific deinitialization if any #ifdef MICROPY_PORT_INIT_FUNC