chiark
/
gitweb
/
~mdw
/
clg
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0062792
)
Bug fix
author
espen
<espen>
Fri, 1 Jun 2007 06:46:06 +0000
(06:46 +0000)
committer
espen
<espen>
Fri, 1 Jun 2007 06:46:06 +0000
(06:46 +0000)
gffi/virtual-slots.lisp
patch
|
blob
|
blame
|
history
diff --git
a/gffi/virtual-slots.lisp
b/gffi/virtual-slots.lisp
index c6546e775480270f73c83afb079792301299bd4f..f5398554c521691e4d07e7d94792ebc07227ce0f 100644
(file)
--- a/
gffi/virtual-slots.lisp
+++ b/
gffi/virtual-slots.lisp
@@
-20,7
+20,7
@@
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: virtual-slots.lisp,v 1.
7 2007/05/10 20:23:5
6 espen Exp $
+;; $Id: virtual-slots.lisp,v 1.
8 2007/06/01 06:46:0
6 espen Exp $
(in-package "GFFI")
(in-package "GFFI")
@@
-117,12
+117,11
@@
(defmethod compute-slot-reader-function :around ((slotd effective-virtual-slot-d
;; An explicit boundp function has been supplied
((slot-boundp slotd 'boundp)
;; An explicit boundp function has been supplied
((slot-boundp slotd 'boundp)
- (let ((
unbound-value
(slot-value slotd 'boundp)))
+ (let ((
boundp
(slot-value slotd 'boundp)))
#'(lambda (object)
#'(lambda (object)
- (let ((value (funcall reader-function object)))
- (if (eq value unbound-value)
- (slot-unbound (class-of object) object (slot-definition-name slotd))
- value)))))
+ (if (not (funcall boundp object))
+ (slot-unbound (class-of object) object (slot-definition-name slotd))
+ (funcall reader-function object)))))
;; A type unbound value exists
((let ((unbound-method (find-applicable-type-method 'unbound-value
;; A type unbound value exists
((let ((unbound-method (find-applicable-type-method 'unbound-value