summaryrefslogtreecommitdiff
path: root/Lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-02-19 15:30:53 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-02-19 15:30:53 +0100
commit98a2664219df9f0bc7f8fdfb14dcc2e8972782ba (patch)
tree17d02e00927e2f7987af19a86218976293736af9 /Lisp
parent50785250d73abef4b10f6435249de64a924af7ef (diff)
Avoid sending messages to potentially unregistered classes.
darcs-hash:e57bfdafd5e8690f8e875bf6a5a0a10050b77303
Diffstat (limited to 'Lisp')
-rw-r--r--Lisp/method-invocation.lisp2
1 files changed, 2 insertions, 0 deletions
diff --git a/Lisp/method-invocation.lisp b/Lisp/method-invocation.lisp
index 8c94ecc..d1412bf 100644
--- a/Lisp/method-invocation.lisp
+++ b/Lisp/method-invocation.lisp
@@ -322,6 +322,8 @@ easier to use with __apply__.
(defun low-level-invoke (receiver selector superclass-pointer-for-send-super
return-typestring return-type
arg-typestrings arg-types argc args)
+ (when (object-is-class-p receiver)
+ (foreign-class-ensure-registered receiver))
(let ((return-c-type (typespec->c-type return-type))
(arg-c-types (mapcar #'typespec->c-type arg-types)))
(with-foreign-string-pool (register-temporary-string