X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-error.lisp;h=659ed28d8ad93b490c670fe96e5c01c5c20f1e76;hb=88dab5bc2cb92077bced88729dc95096b3b6a127;hp=9bb1506d45e6b0a562c5a9737f981aa0d5b37a82;hpb=dcc18b4ddb40e9c63229d9bc37e0132f0123e817;p=sbcl.git diff --git a/src/code/target-error.lisp b/src/code/target-error.lisp index 9bb1506..659ed28 100644 --- a/src/code/target-error.lisp +++ b/src/code/target-error.lisp @@ -19,12 +19,13 @@ ;;; associated with Condition (defvar *condition-restarts* ()) +(defun muffle-warning-p (warning) + (declare (special *muffled-warnings*)) + (typep warning *muffled-warnings*)) + (defun initial-handler-clusters () `(((warning . ,#'(lambda (warning) - (when (typep warning - (locally - (declare (special sb!ext:*muffled-warnings*)) - sb!ext:*muffled-warnings*)) + (when (muffle-warning-p warning) (muffle-warning warning))))))) (defvar *handler-clusters* (initial-handler-clusters)) @@ -56,7 +57,6 @@ restarts associated with CONDITION (or with no condition) will be returned." (setq other (append (cdr alist) other)))) (collect ((res)) (let ((stack *restart-test-stack*)) - (declare (optimize sb!c::stack-allocate-dynamic-extent)) (dolist (restart-cluster *restart-clusters*) (dolist (restart restart-cluster) (when (and (or (not condition) @@ -69,7 +69,7 @@ restarts associated with CONDITION (or with no condition) will be returned." ;; duraction of the test call. (not (memq restart stack)) (let ((*restart-test-stack* (cons restart stack))) - (declare (dynamic-extent *restart-test-stack*)) + (declare (truly-dynamic-extent *restart-test-stack*)) (funcall (restart-test-function restart) condition))) (res restart))))) (res))))