1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

* Handle evaluator traps by calling trap handlers directly rather than

by scm_ithrow and a lazy catch handler.
This commit is contained in:
Neil Jerram 2001-06-26 21:55:45 +00:00
parent 17383b7c77
commit d95c0b76d6
9 changed files with 80 additions and 35 deletions

View file

@ -98,14 +98,16 @@ extern int scm_check_entry_p, scm_check_apply_p, scm_check_exit_p;
#define SCM_RESET_DEBUG_MODE \
do {\
CHECK_ENTRY = SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P;\
CHECK_APPLY = SCM_APPLY_FRAME_P || SCM_TRACE_P;\
CHECK_EXIT = SCM_EXIT_FRAME_P || SCM_TRACE_P;\
CHECK_ENTRY = (SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P)\
&& SCM_NFALSEP (SCM_ENTER_FRAME_HDLR);\
CHECK_APPLY = (SCM_APPLY_FRAME_P || SCM_TRACE_P)\
&& SCM_NFALSEP (SCM_APPLY_FRAME_HDLR);\
CHECK_EXIT = (SCM_EXIT_FRAME_P || SCM_TRACE_P)\
&& SCM_NFALSEP (SCM_EXIT_FRAME_HDLR);\
scm_debug_mode = SCM_DEVAL_P || CHECK_ENTRY || CHECK_APPLY || CHECK_EXIT;\
scm_ceval_ptr = scm_debug_mode ? scm_deval : scm_ceval;\
} while (0)
/* {Evaluator}
*/