mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +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,
|
||||
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
|
||||
these. See the implementation of catch in throw.c. */
|
||||
struct scm_body_thunk_data
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue