diff options
-rw-r--r-- | Lisp/data-types.lisp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/Lisp/data-types.lisp b/Lisp/data-types.lisp index 384e526..6c1a6e8 100644 --- a/Lisp/data-types.lisp +++ b/Lisp/data-types.lisp @@ -192,16 +192,7 @@ a suitable class method instead as you would in Objective-C. :reader pointer-to :initarg :pointer)) (:report (lambda (condition stream) - (format stream - "The Objective-C runtime has issued an exception of ~ - type `~A'.~&~ - Reason: ~A." - (invoke-by-name - (invoke-by-name condition "name") - "UTF8String") - (invoke-by-name - (invoke-by-name condition "reason") - "UTF8String")))) + (describe-object condition stream))) (:documentation "The condition type for Objective-C exceptions. ## Description: @@ -241,6 +232,14 @@ an __exception__, you can simply send it the `self' message. __id__")) +(defmethod describe-object ((condition exception) stream) + (format stream "The Objective-C runtime has issued an exception of ~ + type `~A'.~&~ + Reason: ~A." + (invoke-by-name (invoke-by-name condition "name") "UTF8String") + (invoke-by-name (invoke-by-name condition "reason") "UTF8String"))) + + (defclass foreign-value (c-pointer-wrapper) ((lisp-managed-cell :type (array boolean ()) :accessor foreign-value-lisp-managed-cell-p |