diff options
| author | Damien George <damien@micropython.org> | 2022-12-07 14:42:35 +1100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-12-08 12:27:23 +1100 |
| commit | 2283b6d68fe77b72e7beeb1bf24778834231b190 (patch) | |
| tree | e7a03f1b759a2312b5b23a04c475f998b4ca20a7 /mpy-cross/main.c | |
| parent | 96c23432f6ef448fdcccdfa6a442d64d7ed06277 (diff) | |
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>
Diffstat (limited to 'mpy-cross/main.c')
| -rw-r--r-- | mpy-cross/main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mpy-cross/main.c b/mpy-cross/main.c index fd326439f..4a21d7584 100644 --- a/mpy-cross/main.c +++ b/mpy-cross/main.c @@ -73,8 +73,9 @@ STATIC int compile_and_save(const char *file, const char *output_file, const cha #endif mp_parse_tree_t parse_tree = mp_parse(lex, MP_PARSE_FILE_INPUT); - mp_module_context_t *ctx = m_new_obj(mp_module_context_t); - mp_compiled_module_t cm = mp_compile_to_raw_code(&parse_tree, source_name, false, ctx); + mp_compiled_module_t cm; + cm.context = m_new_obj(mp_module_context_t); + mp_compile_to_raw_code(&parse_tree, source_name, false, &cm); vstr_t vstr; vstr_init(&vstr, 16); |
