bugfix: forgot to change with_exception_handlers in prev^2 commit
This commit is contained in:
parent
94a350ad83
commit
4ceee54fa7
2
Makefile
2
Makefile
|
@ -34,7 +34,7 @@ include $(sort $(wildcard contrib/*/nitro.mk))
|
||||||
bootstrap: bin/picrin-bootstrap
|
bootstrap: bin/picrin-bootstrap
|
||||||
|
|
||||||
bin/picrin-bootstrap:
|
bin/picrin-bootstrap:
|
||||||
test -f bin/picrin-bootstrap || { $(MAKE) -C lib mini-picrin && mv lib/mini-picrin bin/picrin-bootstrap; }
|
test -f bin/picrin-bootstrap || { $(MAKE) -C lib mini-picrin && cp lib/mini-picrin bin/picrin-bootstrap; }
|
||||||
|
|
||||||
lib/mini-picrin: FORCE
|
lib/mini-picrin: FORCE
|
||||||
$(MAKE) -C lib mini-picrin
|
$(MAKE) -C lib mini-picrin
|
||||||
|
|
11
lib/error.c
11
lib/error.c
|
@ -127,9 +127,14 @@ pic_make_error(pic_state *pic, const char *type, const char *msg, pic_value irrs
|
||||||
static pic_value
|
static pic_value
|
||||||
with_exception_handlers(pic_state *pic, pic_value handlers, pic_value thunk)
|
with_exception_handlers(pic_state *pic, pic_value handlers, pic_value thunk)
|
||||||
{
|
{
|
||||||
pic_value alist, var = pic_exc(pic);
|
pic_value var, env, r;
|
||||||
alist = pic_list(pic, 1, pic_cons(pic, var, handlers));
|
var = pic_exc(pic);
|
||||||
return pic_funcall(pic, "with-dynamic-environment", 2, alist, thunk);
|
env = pic_make_weak(pic);
|
||||||
|
pic_weak_set(pic, env, var, handlers);
|
||||||
|
pic->dyn_env = pic_cons(pic, env, pic->dyn_env);
|
||||||
|
r = pic_call(pic, thunk, 0);
|
||||||
|
pic->dyn_env = pic_cdr(pic, pic->dyn_env);
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
static pic_value
|
static pic_value
|
||||||
|
|
Loading…
Reference in New Issue