From afb24f64fe95ed8ebce578ba7526b8a0a7aa5f14 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Mon, 17 Mar 2008 14:10:04 +0000 Subject: [PATCH] 1.0.15.35: fix bitrotted GC sanity checks * One missing #ifdef. * Better lossage messages for for some cases. --- src/runtime/gc-common.c | 4 +++- src/runtime/gencgc.c | 14 +++++++------- version.lisp-expr | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/runtime/gc-common.c b/src/runtime/gc-common.c index b76dc55..9347957 100644 --- a/src/runtime/gc-common.c +++ b/src/runtime/gc-common.c @@ -137,7 +137,9 @@ scavenge(lispobj *start, long n_words) lispobj object = *object_ptr; #ifdef LISP_FEATURE_GENCGC - gc_assert(!forwarding_pointer_p(object_ptr)); + if (forwarding_pointer_p(object_ptr)) + lose("unexpect forwarding pointer in scavenge: %p, start=%p, n=%l\n", + object_ptr, start, n_words); #endif if (is_lisp_pointer(object)) { if (from_space_p(object)) { diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c index 8994024..79c8d77 100644 --- a/src/runtime/gencgc.c +++ b/src/runtime/gencgc.c @@ -1571,6 +1571,8 @@ sniff_code_object(struct code *code, unsigned long displacement) if (!check_code_fixups) return; + FSHOW((stderr, "/sniffing code: %p, %lu\n", code, displacement)); + ncode_words = fixnum_value(code->code_size); nheader_words = HeaderValue(*(lispobj *)code); nwords = ncode_words + nheader_words; @@ -3502,15 +3504,14 @@ verify_space(lispobj *start, size_t words) #ifdef LUTEX_WIDETAG case LUTEX_WIDETAG: #endif +#ifdef NO_TLS_VALUE_MARKER_WIDETAG + case NO_TLS_VALUE_MARKER_WIDETAG: +#endif count = (sizetab[widetag_of(*start)])(start); break; default: - FSHOW((stderr, - "/Unhandled widetag 0x%x at 0x%x\n", - widetag_of(*start), start)); - fflush(stderr); - gc_abort(); + lose("Unhandled widetag 0x%x at 0x%x\n", widetag_of(*start), start); } } } @@ -4445,8 +4446,7 @@ gc_free_heap(void) if (verify_after_free_heap) { /* Check whether purify has left any bad pointers. */ - if (gencgc_verbose) - SHOW("checking after free_heap\n"); + FSHOW((stderr, "checking after free_heap\n")); verify_gc(); } } diff --git a/version.lisp-expr b/version.lisp-expr index 0ebe39b..7c3cd9a 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.15.34" +"1.0.15.35" -- 1.7.10.4