summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2019-02-01 16:40:33 -0800
committerGitHub <noreply@github.com>2019-02-01 16:40:33 -0800
commit3d0757102977bcebadfd530949a84fb224e0cfcb (patch)
tree0ebb28f8f6b11f3cc6070b74623c227742e3d858 /py
parent12917d323de2b4426c35c039a353d65b9acfad99 (diff)
parent5555a24479a2f40d52d008c991f191d3b9b566bf (diff)
Merge pull request #1515 from tannewt/fix_long_live
Fix a couple long live issues
Diffstat (limited to 'py')
-rwxr-xr-xpy/gc_long_lived.c3
-rw-r--r--py/objtype.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/py/gc_long_lived.c b/py/gc_long_lived.c
index 3c54de7ed..49bf1fcd7 100755
--- a/py/gc_long_lived.c
+++ b/py/gc_long_lived.c
@@ -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.
diff --git a/py/objtype.c b/py/objtype.c
index f7fe3b3f6..fec99da1a 100644
--- a/py/objtype.c
+++ b/py/objtype.c
@@ -1065,7 +1065,7 @@ STATIC void type_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
// store attribute
mp_map_elem_t *elem = mp_map_lookup(locals_map, MP_OBJ_NEW_QSTR(attr), MP_MAP_LOOKUP_ADD_IF_NOT_FOUND);
- elem->value = make_obj_long_lived(dest[1], 10);
+ elem->value = dest[1];
dest[0] = MP_OBJ_NULL; // indicate success
}
}