From 046f4e6ecbe2cbef2079eb8a245895ff70238e92 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Sun, 3 Feb 2008 22:36:06 +0100 Subject: Automatically set Objective-C wrapper classes' superclasses. darcs-hash:ef9a71b349ac03e3d80ed89c750f3dd82ad67630 --- Lisp/libobjcl.lisp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Lisp/libobjcl.lisp') diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp index 93ecaef..c973828 100644 --- a/Lisp/libobjcl.lisp +++ b/Lisp/libobjcl.lisp @@ -240,7 +240,8 @@ conventional case for namespace identifiers in Objective-C." (find-objc-meta-class class-name-string)) :pointer class-ptr - :wrapped-foreign-class class-name-string)))))) + :wrapped-foreign-class class-name-string + :direct-superclasses (list (objcl-class-superclass/pointer class-ptr)))))))) (defun find-objc-meta-class (meta-class-name &optional errorp) @@ -580,12 +581,15 @@ separating parts by hyphens works nicely in all of the `:INVERT`, (find-objc-meta-class-by-name (%objcl-class-name (%objcl-object-get-class (pointer-to obj))))) -(defun objcl-class-superclass (class) - (let ((superclass-ptr (%objcl-class-superclass (pointer-to class)))) +(defun objcl-class-superclass/pointer (class-ptr) + (let ((superclass-ptr (%objcl-class-superclass class-ptr))) (if (and superclass-ptr (%objcl-object-is-class superclass-ptr)) (make-pointer-wrapper t :pointer superclass-ptr) nil))) +(defun objcl-class-superclass (class) + (objcl-class-superclass/pointer (pointer-to class))) + (defun objc-class-of (obj) (cond ((object-is-meta-class-p obj) (error "Tried to get the class of meta class ~S." obj)) -- cgit v1.2.3