Skip to content

Commit 6e885c8

Browse files
authored
Merge pull request #5152 from microDev1/traceback
Fix crash on raise of reload exception
2 parents 82a952b + 2756393 commit 6e885c8

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

py/mpstate.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,8 @@ typedef struct _mp_state_vm_t {
146146

147147
// exception object of type ReloadException
148148
mp_obj_exception_t mp_reload_exception;
149+
// traceback object to store traceback
150+
mp_obj_traceback_t mp_reload_traceback;
149151

150152
// dictionary with loaded modules (may be exposed as sys.modules)
151153
mp_obj_dict_t mp_loaded_modules_dict;

py/runtime.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ void mp_init(void) {
8686

8787
MP_STATE_VM(mp_reload_exception).base.type = &mp_type_ReloadException;
8888
MP_STATE_VM(mp_reload_exception).args = (mp_obj_tuple_t *)&mp_const_empty_tuple_obj;
89-
MP_STATE_VM(mp_reload_exception).traceback = (mp_obj_traceback_t *)&mp_const_empty_traceback_obj;
89+
MP_STATE_VM(mp_reload_exception).traceback = &MP_STATE_VM(mp_reload_traceback);
90+
*MP_STATE_VM(mp_reload_exception).traceback = mp_const_empty_traceback_obj;
9091

9192
// call port specific initialization if any
9293
#ifdef MICROPY_PORT_INIT_FUNC

0 commit comments

Comments
 (0)