summaryrefslogtreecommitdiff
path: root/py/persistentcode.c
diff options
context:
space:
mode:
authorDavid Lechner <david@pybricks.com>2022-07-02 15:05:41 -0500
committerDamien George <damien@micropython.org>2022-07-18 13:52:01 +1000
commita98aa66df64e2676a311139f43dee9d13bae2c42 (patch)
tree02b5e2e1a56a8a0c88fc925bf2658ad8c9e6980e /py/persistentcode.c
parent2c728c533059a09635a99facfcce18bda8768497 (diff)
py/persistentcode: Use MP_REGISTER_ROOT_POINTER().
This uses MP_REGISTER_ROOT_POINTER() to register track_reloc_code_list instead of using a conditional inside of mp_state_vm_t. Signed-off-by: David Lechner <david@pybricks.com>
Diffstat (limited to 'py/persistentcode.c')
-rw-r--r--py/persistentcode.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/py/persistentcode.c b/py/persistentcode.c
index fbef0b2c0..a8e742955 100644
--- a/py/persistentcode.c
+++ b/py/persistentcode.c
@@ -644,3 +644,8 @@ void mp_raw_code_save_file(mp_compiled_module_t *cm, const char *filename) {
#endif // MICROPY_PERSISTENT_CODE_SAVE_FILE
#endif // MICROPY_PERSISTENT_CODE_SAVE
+
+#if MICROPY_PERSISTENT_CODE_TRACK_RELOC_CODE
+// An mp_obj_list_t that tracks relocated native code to prevent the GC from reclaiming them.
+MP_REGISTER_ROOT_POINTER(mp_obj_t track_reloc_code_list);
+#endif