mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-16 16:50:21 +02:00
* init.c (scm_start_stack): Removed initialization of
scm_the_last_stack_var. * backtrace.h: Declare scm_the_last_stack_var. * backtrace.c: Define scm_the_last_stack_var. * root.c (mark_root): Don't mark the_last_stack_var. * root.h (scm_root_state): Removed the_last_stack_var. * throw.c: Added #include "fluids.h" (ss_handler): `the-last-stack' is now a fluid. * (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var --> the_last_stack_fluid. * backtrace.c: Added #include "fluids.h" (scm_init_backtrace): Initialize `the-last-stack' to a fluid. (scm_backtrace): `the-last-stack' is now a fluid. * init.c (scm_boot_guile_1): Moved call to scm_init_backtrace after scm_init_fluids.
This commit is contained in:
parent
8bb7f6466b
commit
b6609fc78a
7 changed files with 27 additions and 11 deletions
|
@ -55,6 +55,7 @@
|
|||
#include "continuations.h"
|
||||
#include "stackchk.h"
|
||||
#include "stacks.h"
|
||||
#include "fluids.h"
|
||||
|
||||
#include "throw.h"
|
||||
|
||||
|
@ -339,14 +340,14 @@ scm_internal_lazy_catch (tag, body, body_data, handler, handler_data)
|
|||
|
||||
/* scm_internal_stack_catch
|
||||
Use this one if you want debugging information to be stored in
|
||||
scm_the_last_stack_var on error. */
|
||||
scm_the_last_stack_fluid on error. */
|
||||
|
||||
static SCM
|
||||
ss_handler (void *data, SCM tag, SCM throw_args)
|
||||
{
|
||||
/* Save the stack */
|
||||
SCM_SETCDR (scm_the_last_stack_var,
|
||||
scm_make_stack (scm_cons (SCM_BOOL_T, SCM_EOL)));
|
||||
scm_fluid_set_x (SCM_CDR (scm_the_last_stack_fluid),
|
||||
scm_make_stack (scm_cons (SCM_BOOL_T, SCM_EOL)));
|
||||
/* Throw the error */
|
||||
return scm_throw (tag, throw_args);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue