Skip to content

Commit 94238d4

Browse files
committed
py/nlrsetjmp: Update to take into account new location of nlr_top.
It's now accessed via the MP_STATE_THREAD macro.
1 parent 1df4168 commit 94238d4

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

py/nlr.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ struct _nlr_buf_t {
7070
NORETURN void nlr_setjmp_jump(void *val);
7171
// nlr_push() must be defined as a macro, because "The stack context will be
7272
// invalidated if the function which called setjmp() returns."
73-
#define nlr_push(buf) ((buf)->prev = MP_STATE_VM(nlr_top), MP_STATE_VM(nlr_top) = (buf), setjmp((buf)->jmpbuf))
74-
#define nlr_pop() { MP_STATE_VM(nlr_top) = MP_STATE_VM(nlr_top)->prev; }
73+
#define nlr_push(buf) ((buf)->prev = MP_STATE_THREAD(nlr_top), MP_STATE_THREAD(nlr_top) = (buf), setjmp((buf)->jmpbuf))
74+
#define nlr_pop() { MP_STATE_THREAD(nlr_top) = MP_STATE_THREAD(nlr_top)->prev; }
7575
#define nlr_jump(val) nlr_setjmp_jump(val)
7676
#else
7777
unsigned int nlr_push(nlr_buf_t *);
@@ -91,7 +91,7 @@ void nlr_jump_fail(void *val);
9191
#include "mpstate.h"
9292
#define nlr_raise(val) \
9393
do { \
94-
/*printf("nlr_raise: nlr_top=%p\n", MP_STATE_VM(nlr_top)); \
94+
/*printf("nlr_raise: nlr_top=%p\n", MP_STATE_THREAD(nlr_top)); \
9595
fflush(stdout);*/ \
9696
void *_val = MP_OBJ_TO_PTR(val); \
9797
assert(_val != NULL); \
@@ -101,11 +101,11 @@ void nlr_jump_fail(void *val);
101101

102102
#if !MICROPY_NLR_SETJMP
103103
#define nlr_push(val) \
104-
assert(MP_STATE_VM(nlr_top) != val),nlr_push(val)
104+
assert(MP_STATE_THREAD(nlr_top) != val),nlr_push(val)
105105

106106
/*
107107
#define nlr_push(val) \
108-
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)
108+
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)
109109
#endif
110110
*/
111111
#endif

py/nlrsetjmp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
#if MICROPY_NLR_SETJMP
3030

3131
void nlr_setjmp_jump(void *val) {
32-
nlr_buf_t *buf = MP_STATE_VM(nlr_top);
33-
MP_STATE_VM(nlr_top) = buf->prev;
32+
nlr_buf_t *buf = MP_STATE_THREAD(nlr_top);
33+
MP_STATE_THREAD(nlr_top) = buf->prev;
3434
buf->ret_val = val;
3535
longjmp(buf->jmpbuf, 1);
3636
}

0 commit comments

Comments
 (0)