summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lisp/data-types.lisp3
-rw-r--r--Lisp/libobjcl.lisp3
2 files changed, 4 insertions, 2 deletions
diff --git a/Lisp/data-types.lisp b/Lisp/data-types.lisp
index 7c09306..7c08891 100644
--- a/Lisp/data-types.lisp
+++ b/Lisp/data-types.lisp
@@ -127,7 +127,8 @@ The following calls are all equivalent:
(c2mop:set-funcallable-instance-function
selector
#'(lambda (receiver &rest args)
- (apply #'invoke-by-name receiver selector args))))
+ (apply #'invoke-by-name receiver selector args)))
+ selector)
(defmethod initialize-instance :after ((selector selector)
diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp
index f733211..a1e25cb 100644
--- a/Lisp/libobjcl.lisp
+++ b/Lisp/libobjcl.lisp
@@ -938,7 +938,8 @@ separating parts by hyphens works nicely in all of the `:INVERT`,
:pointer
(%objcl-method-selector
(mem-aref method-array :pointer i))))
- (foreign-free method-array))))))
+ (unless (zerop (mem-ref count-buf :unsigned-int))
+ (foreign-free method-array)))))))
(collect-methods class)
(collect-methods (%objcl-class-metaclass class))))