[elephant-cvs] CVS elephant/src/elephant
ieslick
ieslick at common-lisp.net
Sat Feb 25 17:04:57 UTC 2006
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)
More information about the Elephant-cvs
mailing list