In EXT:SAFE-EVAL avoid the debugger being entered at all.

This commit is contained in:
Juan Jose Garcia Ripoll 2010-03-13 23:47:27 +01:00
parent 82252f6868
commit 8aee46b839
2 changed files with 10 additions and 7 deletions

View file

@ -14,6 +14,9 @@ ECL 10.3.2:
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
* Visible changes:
- The source location annotator records the original pathnames, not the

View file

@ -1480,13 +1480,13 @@ supplied, then SAFE-EVAL will not use a debugger but rather return that
value."
(let ((output nil) (ok nil))
(unwind-protect
(if err-value-p
(let ((*break-enable* nil))
(setf output (si::eval-with-env form env)
ok t))
(handler-bind ((serious-condition #'invoke-debugger))
(setf output (si::eval-with-env form env)
ok t)))
(handler-bind ((serious-condition
(if err-value-p
#'(lambda (c)
(return-from safe-eval err-value))
#'invoke-debugger)))
(setf output (si::eval-with-env form env)
ok t))
(return-from safe-eval (if ok output err-value)))))
#-ecl-min