Never long live the main dictionary.
It's contents change often and may be referenced elsewhere. Fixes #1443
This commit is contained in:
parent
a39fc94dde
commit
5555a24479
@ -27,6 +27,7 @@
|
||||
#include "py/emitglue.h"
|
||||
#include "py/gc_long_lived.h"
|
||||
#include "py/gc.h"
|
||||
#include "py/mpstate.h"
|
||||
|
||||
mp_obj_fun_bc_t *make_fun_bc_long_lived(mp_obj_fun_bc_t *fun_bc, uint8_t max_depth) {
|
||||
#ifndef MICROPY_ENABLE_GC
|
||||
@ -88,7 +89,7 @@ mp_obj_dict_t *make_dict_long_lived(mp_obj_dict_t *dict, uint8_t max_depth) {
|
||||
#ifndef MICROPY_ENABLE_GC
|
||||
return dict;
|
||||
#endif
|
||||
if (dict == NULL || max_depth == 0) {
|
||||
if (dict == NULL || max_depth == 0 || dict == &MP_STATE_VM(dict_main)) {
|
||||
return dict;
|
||||
}
|
||||
// Don't recurse unnecessarily. Return immediately if we've already seen this dict.
|
||||
|
Loading…
x
Reference in New Issue
Block a user