mirror of
https://github.com/micropython/micropython.git
synced 2025-12-16 09:50:15 +01:00
py: Pass in address to compiled module instead of returning it.
This change makes it so the compiler and persistent code loader take a mp_compiled_module_t* as their last argument, instead of returning this struct. This eliminates a duplicate context variable for all callers of these functions (because the context is now stored in the mp_compiled_module_t by the caller), and also eliminates any confusion about which context to use after the mp_compile_to_raw_code or mp_raw_code_load function returns (because there is now only one context, that stored in mp_compiled_module_t.context). Reduces code size by 16 bytes on ARM Cortex-based ports. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
@@ -245,7 +245,9 @@ STATIC void do_load(mp_module_context_t *module_obj, vstr_t *file) {
|
||||
// the correct format and, if so, load and execute the file.
|
||||
#if MICROPY_HAS_FILE_READER && MICROPY_PERSISTENT_CODE_LOAD
|
||||
if (file_str[file->len - 3] == 'm') {
|
||||
mp_compiled_module_t cm = mp_raw_code_load_file(file_str, module_obj);
|
||||
mp_compiled_module_t cm;
|
||||
cm.context = module_obj;
|
||||
mp_raw_code_load_file(file_str, &cm);
|
||||
do_execute_raw_code(cm.context, cm.rc, file_str);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user