summaryrefslogtreecommitdiffstatshomepage
path: root/py/nlrsetjmp.c
blob: a97c8634b2d83c2d54679a724df885f3ce19c3fb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <setjmp.h>
#include <stdio.h>
#include "nlr.h"

#if MICROPY_NLR_SETJMP

nlr_buf_t *nlr_setjmp_top;

void nlr_setjmp_jump(void *val) {
    nlr_buf_t *buf = nlr_setjmp_top;
    nlr_setjmp_top = buf->prev;
    buf->ret_val = val;
    longjmp(buf->jmpbuf, 1);
}

#endif