[movitz-cvs] CVS movitz/losp/muerte
ffjeld
ffjeld at common-lisp.net
Tue May 9 19:56:02 UTC 2006
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv19943
Modified Files:
conditions.lisp
Log Message:
Avoid recursive error if *break-on-signals* is not a type-specifier.
--- /project/movitz/cvsroot/movitz/losp/muerte/conditions.lisp 2006/05/07 18:47:14 1.21
+++ /project/movitz/cvsroot/movitz/losp/muerte/conditions.lisp 2006/05/09 19:56:02 1.22
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Wed Nov 20 15:47:04 2002
;;;;
-;;;; $Id: conditions.lisp,v 1.21 2006/05/07 18:47:14 ffjeld Exp $
+;;;; $Id: conditions.lisp,v 1.22 2006/05/09 19:56:02 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -242,18 +242,19 @@
(cpl (class-precedence-list class))
(condition nil)
(bos-type *break-on-signals*))
- (let ((*break-on-signals* nil)) ; avoid recursive error if *b-o-s* is faulty.
- (when (typecase bos-type
- (null nil)
- (symbol
- (let ((bos-class (find-class bos-type nil)))
- (if (not bos-class)
- (typep (class-prototype-value class) bos-type)
- (member bos-class cpl))))
- (list
- (typep (class-prototype-value class) bos-type))
- (t (member bos-type cpl)))
- (break "Signalling ~S" datum)))
+ (with-simple-restart (continue "Ignore *break-on-signals*.")
+ (let ((*break-on-signals* nil)) ; avoid recursive error if *b-o-s* is faulty.
+ (when (typecase bos-type
+ (null nil)
+ (symbol
+ (let ((bos-class (find-class bos-type nil)))
+ (if (not bos-class)
+ (typep (class-prototype-value class) bos-type)
+ (member bos-class cpl))))
+ (list
+ (typep (class-prototype-value class) bos-type))
+ (t (member bos-type cpl)))
+ (break "Signalling ~S" datum))))
(macrolet ((invoke-handler (handler)
`(funcall ,handler
(or condition
More information about the Movitz-cvs
mailing list