aboutsummaryrefslogtreecommitdiff
path: root/py/nlrsetjmp.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-01-01 23:30:53 +0000
committerDamien George <damien.p.george@gmail.com>2015-01-07 20:33:00 +0000
commitb4b10fd350852e321624d74983cca286091b55a1 (patch)
tree7ac4aa40d70be0170a61f649e9d73c42faa4ba33 /py/nlrsetjmp.c
parentad2307c92c15f0aa90dbd0741fd2538719d0b5e1 (diff)
py: Put all global state together in state structures.
This patch consolidates all global variables in py/ core into one place, in a global structure. Root pointers are all located together to make GC tracing easier and more efficient.
Diffstat (limited to 'py/nlrsetjmp.c')
-rw-r--r--py/nlrsetjmp.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/py/nlrsetjmp.c b/py/nlrsetjmp.c
index 76d718bba..661b650c5 100644
--- a/py/nlrsetjmp.c
+++ b/py/nlrsetjmp.c
@@ -26,14 +26,11 @@
#include "py/nlr.h"
-// this global variable is used for all nlr implementations
-nlr_buf_t *nlr_top;
-
#if MICROPY_NLR_SETJMP
void nlr_setjmp_jump(void *val) {
- nlr_buf_t *buf = nlr_top;
- nlr_top = buf->prev;
+ nlr_buf_t *buf = MP_STATE_VM(nlr_top);
+ MP_STATE_VM(nlr_top) = buf->prev;
buf->ret_val = val;
longjmp(buf->jmpbuf, 1);
}