From 9b414ca730501f4c966cdcd0ce78e133f7ba97b9 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Tue, 18 Dec 1990 23:25:00 +0000 Subject: [PATCH] Only call INTERNAL-ERROR if internal errors have been enabled. --- ldb/interrupt.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/ldb/interrupt.c b/ldb/interrupt.c index bd05181d9..d02f6904a 100644 --- a/ldb/interrupt.c +++ b/ldb/interrupt.c @@ -1,4 +1,4 @@ -/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.19 1990/12/18 01:01:00 wlott Exp $ */ +/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.20 1990/12/18 23:25:00 wlott Exp $ */ /* Interrupt handing magic. */ @@ -147,20 +147,24 @@ static void internal_error(signal, code, context, continuable) { lispobj *args; - sigsetmask(context->sc_mask); - fake_foreign_function_call(context); - args = current_control_stack_pointer; - current_control_stack_pointer += 2; - args[0] = alloc_sap(context); - if (continuable) - args[1] = T; + if (internal_errors_enabled) { + sigsetmask(context->sc_mask); + fake_foreign_function_call(context); + args = current_control_stack_pointer; + current_control_stack_pointer += 2; + args[0] = alloc_sap(context); + if (continuable) + args[1] = T; + else + args[1] = NIL; + call_into_lisp(INTERNAL_ERROR, SymbolFunction(INTERNAL_ERROR), + args, 2); + undo_fake_foreign_function_call(context); + if (continuable) + skip_instruction(context); + } else - args[1] = NIL; - call_into_lisp(INTERNAL_ERROR, SymbolFunction(INTERNAL_ERROR), - args, 2); - undo_fake_foreign_function_call(context); - if (continuable) - skip_instruction(context); + handle_now(signal, code, context); } static void handle_pending_interrupt(context) -- GitLab