From 812ce570c5712dcf0006a1bbd88c026b6953d4e0 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Tue, 18 Sep 2007 02:35:51 +0200 Subject: INVOKE-WITH-CONVERSION: Support arrays, structs, and unions, and convert Lisp objects into Objective-C instances automatically. darcs-hash:decc92c91c315c1e347b9f5327bfb6e21ccca9a8 --- Lisp/utilities.lisp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'Lisp/utilities.lisp') diff --git a/Lisp/utilities.lisp b/Lisp/utilities.lisp index 710ac94..a81b61c 100644 --- a/Lisp/utilities.lisp +++ b/Lisp/utilities.lisp @@ -94,13 +94,15 @@ ;;; (@* "Object Representation") (defmethod print-object ((object id) stream) - (print-unreadable-object (object stream) - (with-slots (pointer) object - (format stream "~A `~A' {~X}" - (objcl-class-name (primitive-invoke object "class" 'id)) - (primitive-invoke (primitive-invoke object "description" 'id) - "UTF8String" :string) - (cffi:pointer-address pointer))))) + (with-slots (pointer) object + (if (cffi:pointer-eq pointer (pointer-to +nil+)) + (format stream "#.~S" '+nil+) + (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) + (cffi:pointer-address pointer)))))) (defmethod print-object ((class objc-class) stream) -- cgit v1.2.3