diff options
| author | David Lechner <david@pybricks.com> | 2022-07-02 15:05:41 -0500 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-07-18 13:52:01 +1000 |
| commit | 85b4f36100aceeddd246f8b3a64436adc8dff867 (patch) | |
| tree | 860e71761ed5fbf61f9f00b6e5117c992e0bd76d /py/modsys.c | |
| parent | a98aa66df64e2676a311139f43dee9d13bae2c42 (diff) | |
py/modsys: Use MP_REGISTER_ROOT_POINTER().
This uses MP_REGISTER_ROOT_POINTER() to register cur_exception,
sys_exitfunc, mp_sys_path_obj, mp_sys_argv_obj and sys_mutable
instead of using a conditional inside of mp_state_vm_t.
Signed-off-by: David Lechner <david@pybricks.com>
Diffstat (limited to 'py/modsys.c')
| -rw-r--r-- | py/modsys.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/py/modsys.c b/py/modsys.c index a090f1212..56e83029c 100644 --- a/py/modsys.c +++ b/py/modsys.c @@ -286,4 +286,24 @@ const mp_obj_module_t mp_module_sys = { MP_REGISTER_MODULE(MP_QSTR_usys, mp_module_sys); +// If MICROPY_PY_SYS_PATH_ARGV_DEFAULTS is not enabled then these two lists +// must be initialised after the call to mp_init. +MP_REGISTER_ROOT_POINTER(mp_obj_list_t mp_sys_path_obj); +MP_REGISTER_ROOT_POINTER(mp_obj_list_t mp_sys_argv_obj); + +#if MICROPY_PY_SYS_EXC_INFO +// current exception being handled, for sys.exc_info() +MP_REGISTER_ROOT_POINTER(mp_obj_base_t * cur_exception); +#endif + +#if MICROPY_PY_SYS_ATEXIT +// exposed through sys.atexit function +MP_REGISTER_ROOT_POINTER(mp_obj_t sys_exitfunc); #endif + +#if MICROPY_PY_SYS_ATTR_DELEGATION +// Contains mutable sys attributes. +MP_REGISTER_ROOT_POINTER(mp_obj_t sys_mutable[MP_SYS_MUTABLE_NUM]); +#endif + +#endif // MICROPY_PY_SYS |
