diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-03 22:36:06 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-03 22:36:06 +0100 |
commit | 046f4e6ecbe2cbef2079eb8a245895ff70238e92 (patch) | |
tree | d0a213d6f7bb3bf5c49f12cb467110d276a7db41 /Lisp/libobjcl.lisp | |
parent | b7b5bd2d3ca7f3e339512582179e355d4df71293 (diff) |
Automatically set Objective-C wrapper classes' superclasses.
darcs-hash:ef9a71b349ac03e3d80ed89c750f3dd82ad67630
Diffstat (limited to 'Lisp/libobjcl.lisp')
-rw-r--r-- | Lisp/libobjcl.lisp | 10 |
1 files changed, 7 insertions, 3 deletions
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)) |