Paul Sokolovsky | 3a83b80 | 2014-04-17 00:16:45 +0300 | [diff] [blame] | 1 | #include <setjmp.h> |
2 | #include <stdio.h> | ||||
3 | #include "nlr.h" | ||||
4 | |||||
5 | #if MICROPY_NLR_SETJMP | ||||
6 | |||||
7 | nlr_buf_t *nlr_setjmp_top; | ||||
8 | |||||
9 | void nlr_setjmp_jump(void *val) { | ||||
10 | nlr_buf_t *buf = nlr_setjmp_top; | ||||
11 | nlr_setjmp_top = buf->prev; | ||||
12 | buf->ret_val = val; | ||||
13 | longjmp(buf->jmpbuf, 1); | ||||
14 | } | ||||
15 | |||||
16 | #endif |