summaryrefslogtreecommitdiff
path: root/Lisp/data-types.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-03-05 01:29:07 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-03-05 01:29:07 +0100
commit1b2b509cd214ce604ce6ac58ef38ac6b5aec81e1 (patch)
tree556831552a0cfef35dd5a447959a8956ddf4da08 /Lisp/data-types.lisp
parentd16f69d260753ff706aab52b6990012441fce2a6 (diff)
Collect selectors in package OBJECTIVE-C-SELECTORS.
darcs-hash:f8184992f82c34b07e6a89745593b8daec17fc61
Diffstat (limited to 'Lisp/data-types.lisp')
-rw-r--r--Lisp/data-types.lisp11
1 files changed, 11 insertions, 0 deletions
diff --git a/Lisp/data-types.lisp b/Lisp/data-types.lisp
index 2c309e7..18f2611 100644
--- a/Lisp/data-types.lisp
+++ b/Lisp/data-types.lisp
@@ -130,6 +130,17 @@ The following calls are all equivalent:
(apply #'invoke-by-name receiver selector args))))
+(defmethod initialize-instance :after ((selector selector)
+ &rest initargs
+ &key
+ &allow-other-keys)
+ (declare (ignore initargs))
+ ;; Register the selector.
+ (let ((symbol (intern (selector-name selector) '#:objective-c-selectors)))
+ (setf (fdefinition symbol) selector)
+ (export symbol '#:objective-c-selectors)))
+
+
(defmethod make-load-form ((selector selector) &optional environment)
(declare (ignore environment))
`(intern-pointer-wrapper 'selector