1.0.22.10: detect infinite recursion during wrapper validation
authorNikodemus Siivola <nikodemus@random-state.net>
Mon, 3 Nov 2008 14:33:27 +0000 (14:33 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Mon, 3 Nov 2008 14:33:27 +0000 (14:33 +0000)
 * Patch by Attila Lendvai. ...still hoping for a test-case, so this
   could be fixed properly.

NEWS
src/pcl/wrapper.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index b23f286..4e54130 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,8 @@ changes in sbcl-1.0.23 relative to 1.0.22:
     special handling by the pretty printer.
   * bug fix: slot symbol-macros from WITH-SLOTS inside DEFMETHOD bodies
     now interact correctly with type declarations.
+  * partial bug fix: PCL detects infinite recursion during wrapper
+    validation. (thanks to Attila Lendvai)
 
 changes in sbcl-1.0.22 relative to 1.0.21:
   * minor incompatible change: LOAD-SHARED-OBJECT no longer by default looks
index 3ea3a2c..d67e1c4 100644 (file)
            ;;    INSTANCE's class.  See also the comment above
            ;;    FORCE-CACHE-FLUSHES.  Paul Dietz has test cases for this.
            (force-cache-flushes (class-of instance))
+           ;; KLUDGE avoid an infinite recursion, it's still better to
+           ;; bail out with an AVER for server softwares. see FIXME above.
+           ;; details: http://thread.gmane.org/gmane.lisp.steel-bank.devel/10175
+           (aver (not (eq (layout-invalid (wrapper-of instance)) t)))
            (check-wrapper-validity instance))
           ((consp state)
            (ecase (car state)
index 795d615..2edfdad 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.22.9"
+"1.0.22.10"