summaryrefslogtreecommitdiffstatshomepage
path: root/py/nlr.h
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-05-30 19:27:26 +0100
committerDamien George <damien.p.george@gmail.com>2016-06-28 11:28:52 +0100
commit94238d4ae5851802db75aa49d4b68bca6f99d6a8 (patch)
tree83ee67134f107ed196bece2a34c82daf7259e9b7 /py/nlr.h
parent1df4168c334651a8962acfeb170b51bb3cbff5c5 (diff)
downloadmicropython-94238d4ae5851802db75aa49d4b68bca6f99d6a8.tar.gz
micropython-94238d4ae5851802db75aa49d4b68bca6f99d6a8.zip
py/nlrsetjmp: Update to take into account new location of nlr_top.
It's now accessed via the MP_STATE_THREAD macro.
Diffstat (limited to 'py/nlr.h')
-rw-r--r--py/nlr.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/py/nlr.h b/py/nlr.h
index aacac6a59c..6c86fc26c3 100644
--- a/py/nlr.h
+++ b/py/nlr.h
@@ -70,8 +70,8 @@ struct _nlr_buf_t {
NORETURN void nlr_setjmp_jump(void *val);
// nlr_push() must be defined as a macro, because "The stack context will be
// invalidated if the function which called setjmp() returns."
-#define nlr_push(buf) ((buf)->prev = MP_STATE_VM(nlr_top), MP_STATE_VM(nlr_top) = (buf), setjmp((buf)->jmpbuf))
-#define nlr_pop() { MP_STATE_VM(nlr_top) = MP_STATE_VM(nlr_top)->prev; }
+#define nlr_push(buf) ((buf)->prev = MP_STATE_THREAD(nlr_top), MP_STATE_THREAD(nlr_top) = (buf), setjmp((buf)->jmpbuf))
+#define nlr_pop() { MP_STATE_THREAD(nlr_top) = MP_STATE_THREAD(nlr_top)->prev; }
#define nlr_jump(val) nlr_setjmp_jump(val)
#else
unsigned int nlr_push(nlr_buf_t *);
@@ -91,7 +91,7 @@ void nlr_jump_fail(void *val);
#include "mpstate.h"
#define nlr_raise(val) \
do { \
- /*printf("nlr_raise: nlr_top=%p\n", MP_STATE_VM(nlr_top)); \
+ /*printf("nlr_raise: nlr_top=%p\n", MP_STATE_THREAD(nlr_top)); \
fflush(stdout);*/ \
void *_val = MP_OBJ_TO_PTR(val); \
assert(_val != NULL); \
@@ -101,11 +101,11 @@ void nlr_jump_fail(void *val);
#if !MICROPY_NLR_SETJMP
#define nlr_push(val) \
- assert(MP_STATE_VM(nlr_top) != val),nlr_push(val)
+ assert(MP_STATE_THREAD(nlr_top) != val),nlr_push(val)
/*
#define nlr_push(val) \
- printf("nlr_push: before: nlr_top=%p, val=%p\n", MP_STATE_VM(nlr_top), val),assert(MP_STATE_VM(nlr_top) != val),nlr_push(val)
+ printf("nlr_push: before: nlr_top=%p, val=%p\n", MP_STATE_THREAD(nlr_top), val),assert(MP_STATE_THREAD(nlr_top) != val),nlr_push(val)
#endif
*/
#endif