r4946: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 15 May 2003 06:32:46 +0000 (06:32 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 15 May 2003 06:32:46 +0000 (06:32 +0000)
mop.lisp
package.lisp

index c9fb4f2e89be8863dd4ec747eb1a16b0b23999e6..9e2706c9f4477375b3d8dcc5caab573aa0f54813 100644 (file)
--- a/mop.lisp
+++ b/mop.lisp
@@ -11,7 +11,7 @@
 ;;;; in Text, HTML, and XML formats. This includes hyperlinking
 ;;;; capability and sub-objects.
 ;;;;
-;;;; $Id: mop.lisp,v 1.72 2003/05/15 06:05:46 kevin Exp $
+;;;; $Id: mop.lisp,v 1.73 2003/05/15 06:30:19 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2000-2003 by Kevin M. Rosenberg
 ;;;; *************************************************************************
   (defvar *lazy-readers* (make-hash-table))
 
 (defmethod slot-unbound :around ((class hyperobject-class) instance slot-name)
-    (let ((lazy-reader (loop for super in (mop:class-precedence-list class)
-                            as lazy-reader = (getf (gethash super *lazy-readers*) slot-name)
-                            when lazy-reader return it)))
-      (if lazy-reader
-         (setf (slot-value instance slot-name)
-               (apply (car lazy-reader)
-                      (loop for arg-slot-name in (cdr lazy-reader)
-                            collect (slot-value instance arg-slot-name))))
-         ;; No lazy reader -- defer to regular slot-unbound handling.
-         (call-next-method))))
+  (let ((lazy-reader (loop for super in (class-precedence-list class)
+                          as lazy-reader = (getf (gethash super *lazy-readers*) slot-name)
+                          when lazy-reader return it)))
+    (if lazy-reader
+       (setf (slot-value instance slot-name)
+             (apply (car lazy-reader)
+                    (loop for arg-slot-name in (cdr lazy-reader)
+                          collect (slot-value instance arg-slot-name))))
+       ;; No lazy reader -- defer to regular slot-unbound handling.
+       (call-next-method))))
 
   ;; The reader is a function and the reader-keys are slot names.  The slot is lazily set to
   ;; the result of applying the function to the slot-values of those slots, and that value
index f23c72e7a6a739bd0eea4b750edd63c556993cb7..71630b20b6529c9d4f507f84b0c0aa1814af61c5 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: package.lisp,v 1.46 2003/05/14 05:29:48 kevin Exp $
+;;;; $Id: package.lisp,v 1.47 2003/05/15 06:30:19 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2000-2003 by Kevin M. Rosenberg
 ;;;; *************************************************************************
@@ -73,7 +73,8 @@
      sb-pcl::compute-effective-slot-definition-initargs
      sb-pcl::slot-value-using-class
      sb-pcl:class-prototype sb-pcl:generic-function-method-class sb-pcl:intern-eql-specializer
-     sb-pcl:make-method-lambda sb-pcl:generic-function-lambda-list)
+     sb-pcl:make-method-lambda sb-pcl:generic-function-lambda-list
+     sb-pcl::class-precedence-list)
    #+kmr-cmucl-mop 
    '(pcl::compute-effective-slot-definition-initargs)
    #+kmr-cmucl-pcl
@@ -85,7 +86,8 @@
      pcl::compute-effective-slot-definition-initargs
      pcl::slot-value-using-class
      pcl:class-prototype pcl:generic-function-method-class pcl:intern-eql-specializer
-     pcl:make-method-lambda pcl:generic-function-lambda-list)
+     pcl:make-method-lambda pcl:generic-function-lambda-list
+     pcl::class-precedence-list)
    #+scl
    '(clos::compute-effective-slot-definition-initargs
      clos::class-prototype