gcl.git - GNU Common Lisp

index : gcl.git
GNU Common Lisp
summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamm Maguire <camm@debian.org>2013年11月18日 15:42:55 +0000
committerCamm Maguire <camm@debian.org>2013年11月18日 15:44:42 +0000
commit2576d4ecadba236c964b364df3363497658c9671 (patch)
treee284abef65c602e0a50cc102893becb91ef414a3
parent7694d84316d542d3b37100d64f41dca4fb48e7e3 (diff)
downloadgcl-2576d4ecadba236c964b364df3363497658c9671.tar.gz
skip internal condition processing in process-error where not appropriate
Diffstat
-rwxr-xr-xgcl/clcs/gcl_clcs_top_patches.lisp 13
1 files changed, 8 insertions, 5 deletions
diff --git a/gcl/clcs/gcl_clcs_top_patches.lisp b/gcl/clcs/gcl_clcs_top_patches.lisp
index d9b95664e..662794757 100755
--- a/gcl/clcs/gcl_clcs_top_patches.lisp
+++ b/gcl/clcs/gcl_clcs_top_patches.lisp
@@ -28,11 +28,14 @@
(defun processed-error-p (x) (or (stringp x) (conditionp x)))
(defun process-error (datum args function-name &optional (default-type 'conditions::simple-error))
- (when (symbolp datum)
- (setq datum (if (conditions::simple-condition-class-p datum)
- (conditions::symcat "INTERNAL-" datum)
- (conditions::symcat "INTERNAL-SIMPLE-" datum))
- args `(,@args :function-name ,(ihs-fname *current-ihs*))))
+ (let ((internal (when (symbolp datum)
+ (find-class
+ (conditions::symcat
+ (if (conditions::simple-condition-class-p datum) "INTERNAL-" "INTERNAL-SIMPLE-")
+ datum)
+ nil))))
+ (when internal
+ (setq datum (class-name internal) args `(,@args :function-name ,(ihs-fname *current-ihs*)))))
(or (conditions::coerce-to-condition datum args default-type function-name)
(coerce-to-string datum args)))
(defun process-warning (datum args function-name &optional (default-type 'conditions::simple-warning))
generated by cgit v1.2.3 (git 2.25.1) at 2025年09月03日 00:16:08 +0000

AltStyle によって変換されたページ (->オリジナル) /