X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/4b8e5c0347115ff30841f1d1e71afe59ecb6c82c..6e6b09589b6f6d0b260fd022e6a3b189f7f7d352:/src/class-layout-impl.lisp diff --git a/src/class-layout-impl.lisp b/src/class-layout-impl.lisp index 26782e2..8edfcf6 100644 --- 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))) -(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. @@ -207,10 +204,8 @@ (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. @@ -389,10 +384,7 @@ (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 --------------------------------------------------