From 213250b363705b9be3acdd90f604169c0e23b355 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Fri, 14 Sep 2007 21:32:59 +0200 Subject: Use PRIMITIVE-INVOKE in memory management and clean the codebase up a bit. darcs-hash:a0d7f10b0b4e7fe43271fcce37523424f43480da --- Lisp/utilities.lisp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'Lisp/utilities.lisp') diff --git a/Lisp/utilities.lisp b/Lisp/utilities.lisp index 29efb60..be6f8b4 100644 --- a/Lisp/utilities.lisp +++ b/Lisp/utilities.lisp @@ -90,3 +90,37 @@ (defmethod objc-equal ((x string) (y selector)) (equal x (selector-name y))) + + +;;; (@* "Object Representation") +(defmethod print-object ((object id) stream) + (print-unreadable-object (object stream) + (format stream "~A `~A' {~X}" + (objcl-class-name (primitive-invoke object "class" :id)) + (primitive-invoke (primitive-invoke object "description" :id) + "UTF8String" :string) + (primitive-invoke object "hash" :unsigned-int)))) + + +(defmethod print-object ((class objc-class) stream) + (print-unreadable-object (class stream) + (format stream "~S ~A {~X}" + 'objc-class + (objcl-class-name class) + (primitive-invoke class "hash" :unsigned-int)))) + + +(defmethod print-object ((selector selector) stream) + (print-unreadable-object (selector stream) + (format stream "~S `~A'" + 'selector + (selector-name selector)))) + + +(defmethod print-object ((exception exception) stream) + (print-unreadable-object (exception stream) + (format stream "~S ~A {~X}" + 'exception + (primitive-invoke (primitive-invoke exception "name" :id) + "UTF8String" :string) + (primitive-invoke exception "hash" :unsigned-int)))) -- cgit v1.2.3