~mdw
/
sod
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/: Introduce a macro for defining on-demand slots.
[sod]
/
src
/
class-layout-impl.lisp
diff --git
a/src/class-layout-impl.lisp
b/src/class-layout-impl.lisp
index
26782e2
..
8edfcf6
100644
(file)
--- a/
src/class-layout-impl.lisp
+++ b/
src/class-layout-impl.lisp
@@
-129,11
+129,8
@@
(sod-class-messages super)))
(sod-class-precedence-list class)))
(sod-class-messages super)))
(sod-class-precedence-list class)))
-(defmethod slot-unbound
- (clos-class (class sod-class) (slot-name (eql 'effective-methods)))
- (declare (ignore clos-class))
- (setf (slot-value class 'effective-methods)
- (compute-effective-methods class)))
+(define-on-demand-slot sod-class effective-methods (class)
+ (compute-effective-methods class))
;;;--------------------------------------------------------------------------
;;; Instance layout.
;;;--------------------------------------------------------------------------
;;; Instance layout.
@@
-207,10
+204,8
@@
(reverse chain)))
(sod-class-chains class))))
(reverse chain)))
(sod-class-chains class))))
-(defmethod slot-unbound
- (clos-class (class sod-class) (slot-name (eql '%ilayout)))
- (declare (ignore clos-class))
- (setf (slot-value class '%ilayout) (compute-ilayout class)))
+(define-on-demand-slot sod-class %ilayout (class)
+ (compute-ilayout class))
;;;--------------------------------------------------------------------------
;;; Vtable layout.
;;;--------------------------------------------------------------------------
;;; Vtable layout.
@@
-389,10
+384,7
@@
(compute-vtable class (reverse chain)))
(sod-class-chains class)))
(compute-vtable class (reverse chain)))
(sod-class-chains class)))
-(defmethod slot-unbound
- (clos-class (class sod-class) (slot-name (eql 'vtables)))
- (declare (ignore clos-class))
- (setf (slot-value class 'vtables)
- (compute-vtables class)))
+(define-on-demand-slot sod-class vtables (class)
+ (compute-vtables class))
;;;----- That's all, folks --------------------------------------------------
;;;----- That's all, folks --------------------------------------------------