From 51eadabe8132dcb908d3db4c057598bf56bcb851 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Fri, 9 Nov 2007 14:57:01 +0000 Subject: [PATCH] 1.0.11.19: hard failure for corrupted fixups vectors * Prior to this SBCL used to only print an error message to stderr of the process, but since bogus fixups should only occur if something is badly wrong we prefer to lose(). --- src/runtime/gencgc.c | 4 +++- version.lisp-expr | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c index 250ccee..719e127 100644 --- a/src/runtime/gencgc.c +++ b/src/runtime/gencgc.c @@ -1817,7 +1817,9 @@ gencgc_apply_code_fixups(struct code *old_code, struct code *new_code) old_value - displacement; } } else { - fprintf(stderr, "widetag of fixup vector is %d\n", widetag_of(fixups_vector->header)); + /* This used to just print a note to stderr, but a bogus fixup seems to + * indicate real heap corruption, so a hard hailure is in order. */ + lose("fixup vector %p has a bad widetag: %d\n", fixups_vector, widetag_of(fixups_vector->header)); } /* Check for possible errors. */ diff --git a/version.lisp-expr b/version.lisp-expr index 4387ce8..22cfe31 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.11.18" +"1.0.11.19" -- 1.7.10.4