From: Gabor Melis Date: Fri, 1 Sep 2006 10:32:27 +0000 (+0000) Subject: 0.9.16.8: less conservatism X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=626aa3821b5daf2c6595c759f00fdccff5aea2af;p=sbcl.git 0.9.16.8: less conservatism * the word at control_stack_end is not part of the control stack and not a pointer to be preserved * similarly, don't preserve the first word after the interrupt context --- diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c index 76beaa1..e25dd40 100644 --- a/src/runtime/gencgc.c +++ b/src/runtime/gencgc.c @@ -4053,7 +4053,7 @@ preserve_context_registers (os_context_t *c) #error "preserve_context_registers needs to be tweaked for non-x86 Darwin" #endif #endif - for(ptr = (void **)(c+1); ptr>=(void **)c; ptr--) { + for(ptr = ((void **)(c+1))-1; ptr>=(void **)c; ptr--) { preserve_pointer(*ptr); } } @@ -4159,7 +4159,7 @@ garbage_collect_generation(generation_index_t generation, int raise) #else esp = (void **)((void *)&raise); #endif - for (ptr = (void **)th->control_stack_end; ptr > esp; ptr--) { + for (ptr = ((void **)th->control_stack_end)-1; ptr > esp; ptr--) { preserve_pointer(*ptr); } } diff --git a/version.lisp-expr b/version.lisp-expr index 97e2fb4..442bc92 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,5 +17,5 @@ ;;; 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".) -"0.9.16.7" +"0.9.16.8"