From: Nikodemus Siivola Date: Wed, 29 Aug 2007 19:38:26 +0000 (+0000) Subject: 1.0.9.13: copy the WRAPPER-SLOT-TABLE in FORCE-CACHE-FLUSHES X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=224a1ad2a321173725bd114bbd67fa426f682c75;p=sbcl.git 1.0.9.13: copy the WRAPPER-SLOT-TABLE in FORCE-CACHE-FLUSHES * 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. --- diff --git a/src/pcl/std-class.lisp b/src/pcl/std-class.lisp index 847d389..04cdc98 100644 --- a/src/pcl/std-class.lisp +++ b/src/pcl/std-class.lisp @@ -896,11 +896,11 @@ (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) @@ -1279,6 +1279,8 @@ (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) diff --git a/version.lisp-expr b/version.lisp-expr index f6845dd..5d76820 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"