Skip to content

Commit

Permalink
py/modsys: Use MP_REGISTER_ROOT_POINTER().
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
dlech authored and dpgeorge committed Jul 18, 2022
1 parent a98aa66 commit 85b4f36
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 22 deletions.
20 changes: 20 additions & 0 deletions py/modsys.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
22 changes: 0 additions & 22 deletions py/mpstate.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,31 +154,9 @@ typedef struct _mp_state_vm_t {
mp_sched_item_t sched_queue[MICROPY_SCHEDULER_DEPTH];
#endif

// current exception being handled, for sys.exc_info()
#if MICROPY_PY_SYS_EXC_INFO
mp_obj_base_t *cur_exception;
#endif

#if MICROPY_PY_SYS_ATEXIT
// exposed through sys.atexit function
mp_obj_t sys_exitfunc;
#endif

// dictionary for the __main__ module
mp_obj_dict_t dict_main;

#if MICROPY_PY_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_obj_list_t mp_sys_path_obj;
mp_obj_list_t mp_sys_argv_obj;

#if MICROPY_PY_SYS_ATTR_DELEGATION
// Contains mutable sys attributes.
mp_obj_t sys_mutable[MP_SYS_MUTABLE_NUM];
#endif
#endif

// dictionary for overridden builtins
#if MICROPY_CAN_OVERRIDE_BUILTINS
mp_obj_dict_t *mp_module_builtins_override_dict;
Expand Down

0 comments on commit 85b4f36

Please sign in to comment.