Update of /project/elephant/cvsroot/elephant/src/elephant In directory clnet:/tmp/cvs-serv29707/src/elephant
Modified Files: classes.lisp Log Message: Exploring SBCL failures & incorporating Andrew Blumberg's SBCL MOP fix
--- /project/elephant/cvsroot/elephant/src/elephant/classes.lisp 2006/02/22 22:01:44 1.5 +++ /project/elephant/cvsroot/elephant/src/elephant/classes.lisp 2006/02/25 17:04:56 1.6 @@ -142,8 +142,7 @@ ;; Update new persistent slots, the others we get for free (same oid!) ;; Isn't this done by the default call-next-method? (apply #'shared-initialize instance new-persistent-slots initargs)) - ) - ) + ))
(defmethod update-instance-for-different-class :around ((previous persistent) (current persistent) &rest initargs &key) (let* ((old-class (class-of previous)) @@ -174,6 +173,7 @@ (remove-kv (oid previous) (find-class-index old-class))) (call-next-method)))
+ (defmethod slot-value-using-class :around ((class persistent-metaclass) (instance persistent-object) (slot-def persistent-slot-definition)) "Get the slot value from the database." (declare (optimize (speed 3))) @@ -296,7 +296,18 @@ (type persistent-object instance)) (persistent-slot-boundp (get-con instance) instance name)))
-#+(or cmu sbcl) +#+sbcl ;; CMU also? Old code follows... +(defmethod initialize-internal-slot-functions ((slot-def persistent-slot-definition)) + (let ((name (slot-definition-name slot-def))) + (setf (slot-definition-reader-function slot-def) + (make-persistent-reader name)) + (setf (slot-definition-writer-function slot-def) + (make-persistent-writer name)) + (setf (slot-definition-boundp-function slot-def) + (make-persistent-slot-boundp name))) + (call-next-method)) ;; slot-def) + +#+cmu (defmethod initialize-internal-slot-functions ((slot-def persistent-slot-definition)) (let ((name (slot-definition-name slot-def))) (setf (slot-definition-reader-function slot-def)