0.9.14.12:
[sbcl.git] / src / pcl / std-class.lisp
index c3216ba..80f7719 100644 (file)
 
 (defun compute-class-slots (eslotds)
   (let (collect)
-    (dolist (eslotd eslotds)
-      (push (assoc (slot-definition-name eslotd)
-                   (class-slot-cells (slot-definition-class eslotd)))
-            collect))
-    (nreverse collect)))
+    (dolist (eslotd eslotds (nreverse collect))
+      (let ((cell (assoc (slot-definition-name eslotd)
+                         (class-slot-cells
+                          (slot-definition-allocation-class eslotd)))))
+        (aver cell)
+        (push cell collect)))))
 
 (defun update-gfs-of-class (class)
   (when (and (class-finalized-p class)
         ;;  --    --> local     add slot
         ;;  --    --> shared    --
 
-        ;; Collect class slots from inherited wrappers. Needed for
-        ;; shared -> local transfers of inherited slots.
-        (let ((inherited (layout-inherits owrapper)))
-          (loop for i from (1- (length inherited)) downto 0
-                for layout = (aref inherited i)
-                when (typep layout 'wrapper)
-                do (dolist (slot (wrapper-class-slots layout))
-                     (pushnew slot oclass-slots :key #'car))))
-
         ;; Go through all the old local slots.
         (let ((opos 0))
           (dolist (name olayout)