summaryrefslogtreecommitdiff
path: root/py/persistentcode.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/persistentcode.c')
-rw-r--r--py/persistentcode.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/py/persistentcode.c b/py/persistentcode.c
index 5408f756c..fdc87d5cc 100644
--- a/py/persistentcode.c
+++ b/py/persistentcode.c
@@ -390,7 +390,7 @@ STATIC mp_raw_code_t *load_raw_code(mp_reader_t *reader, mp_module_context_t *co
return rc;
}
-mp_compiled_module_t mp_raw_code_load(mp_reader_t *reader, mp_module_context_t *context) {
+void mp_raw_code_load(mp_reader_t *reader, mp_compiled_module_t *cm) {
byte header[4];
read_bytes(reader, header, sizeof(header));
byte arch = MPY_FEATURE_DECODE_ARCH(header[2]);
@@ -414,46 +414,42 @@ mp_compiled_module_t mp_raw_code_load(mp_reader_t *reader, mp_module_context_t *
size_t n_qstr = read_uint(reader);
size_t n_obj = read_uint(reader);
- mp_module_context_alloc_tables(context, n_qstr, n_obj);
+ mp_module_context_alloc_tables(cm->context, n_qstr, n_obj);
// Load qstrs.
for (size_t i = 0; i < n_qstr; ++i) {
- context->constants.qstr_table[i] = load_qstr(reader);
+ cm->context->constants.qstr_table[i] = load_qstr(reader);
}
// Load constant objects.
for (size_t i = 0; i < n_obj; ++i) {
- context->constants.obj_table[i] = load_obj(reader);
+ cm->context->constants.obj_table[i] = load_obj(reader);
}
// Load top-level module.
- mp_compiled_module_t cm2;
- cm2.rc = load_raw_code(reader, context);
- cm2.context = context;
+ cm->rc = load_raw_code(reader, cm->context);
#if MICROPY_PERSISTENT_CODE_SAVE
- cm2.has_native = MPY_FEATURE_DECODE_ARCH(header[2]) != MP_NATIVE_ARCH_NONE;
- cm2.n_qstr = n_qstr;
- cm2.n_obj = n_obj;
+ cm->has_native = MPY_FEATURE_DECODE_ARCH(header[2]) != MP_NATIVE_ARCH_NONE;
+ cm->n_qstr = n_qstr;
+ cm->n_obj = n_obj;
#endif
reader->close(reader->data);
-
- return cm2;
}
-mp_compiled_module_t mp_raw_code_load_mem(const byte *buf, size_t len, mp_module_context_t *context) {
+void mp_raw_code_load_mem(const byte *buf, size_t len, mp_compiled_module_t *context) {
mp_reader_t reader;
mp_reader_new_mem(&reader, buf, len, 0);
- return mp_raw_code_load(&reader, context);
+ mp_raw_code_load(&reader, context);
}
#if MICROPY_HAS_FILE_READER
-mp_compiled_module_t mp_raw_code_load_file(const char *filename, mp_module_context_t *context) {
+void mp_raw_code_load_file(const char *filename, mp_compiled_module_t *context) {
mp_reader_t reader;
mp_reader_new_file(&reader, filename);
- return mp_raw_code_load(&reader, context);
+ mp_raw_code_load(&reader, context);
}
#endif // MICROPY_HAS_FILE_READER