1.0.9.13: copy the WRAPPER-SLOT-TABLE in FORCE-CACHE-FLUSHES
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 29 Aug 2007 19:38:26 +0000 (19:38 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 29 Aug 2007 19:38:26 +0000 (19:38 +0000)
* Otherwise the new wrapper will be missing the slot table,
  potentially leading to bogus SLOT-MISSING calls.

  No test case, as I was unable to cause bad behaviour with current
  HEAD in the absence of this patch, but future changes depend on
  this.

src/pcl/std-class.lisp
version.lisp-expr

index 847d389..04cdc98 100644 (file)
 
       (update-lisp-class-layout class nwrapper)
       (setf (slot-value class 'slots) eslotds
+            (layout-slot-table nwrapper) (make-slot-table class eslotds)
             (wrapper-instance-slots-layout nwrapper) nlayout
             (wrapper-class-slots nwrapper) nwrapper-class-slots
             (layout-length nwrapper) nslots
             (slot-value class 'wrapper) nwrapper)
-      (setf (layout-slot-table nwrapper) (make-slot-table class eslotds))
       (do* ((slots (slot-value class 'slots) (cdr slots))
             (dupes nil))
            ((null slots)
               (wrapper-instance-slots-layout owrapper))
         (setf (wrapper-class-slots nwrapper)
               (wrapper-class-slots owrapper))
+        (setf (wrapper-slot-table nwrapper)
+              (wrapper-slot-table owrapper))
         (with-pcl-lock
           (update-lisp-class-layout class nwrapper)
           (setf (slot-value class 'wrapper) nwrapper)
index f6845dd..5d76820 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.9.12"
+"1.0.9.13"