mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 03:30:27 +02:00
* throw.c (scm_internal_lazy_catch): New function.
(scm_lazy_catch): Rewritten to use it. (scm_ithrow): Handle the new lazy catch representation. Use SCM_LAZY_CATCH_P, instead of assuming that any wind list entry that doesn't have a jmpbuf is a lazy catch clause. (tc16_lazy_catch, struct lazy_catch, mark_lazy_catch, free_lazy_catch, print_lazy_catch, lazy_catch_funs, make_lazy_catch, SCM_LAZY_CATCH_P): Support funs, including a new smob. (scm_init_throw): Register the new lazy-catch smob type. * throw.h (scm_internal_lazy_catch): decl for new function.
This commit is contained in:
parent
3eed34754c
commit
ccbfefb7cf
1 changed files with 6 additions and 0 deletions
|
@ -58,6 +58,12 @@ extern SCM scm_internal_catch SCM_P ((SCM tag,
|
||||||
scm_catch_handler_t handler,
|
scm_catch_handler_t handler,
|
||||||
void *handler_data));
|
void *handler_data));
|
||||||
|
|
||||||
|
extern SCM scm_internal_lazy_catch SCM_P ((SCM tag,
|
||||||
|
scm_catch_body_t body,
|
||||||
|
void *body_data,
|
||||||
|
scm_catch_handler_t handler,
|
||||||
|
void *handler_data));
|
||||||
|
|
||||||
/* The first argument to scm_body_thunk should be a pointer to one of
|
/* The first argument to scm_body_thunk should be a pointer to one of
|
||||||
these. See the implementation of catch in throw.c. */
|
these. See the implementation of catch in throw.c. */
|
||||||
struct scm_body_thunk_data
|
struct scm_body_thunk_data
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue