From d0ceeb45a7042703bfd9c6d4c335680a3c07a974 Mon Sep 17 00:00:00 2001 From: Thiemo Seufer Date: Sat, 28 Jul 2007 12:53:00 +0000 Subject: [PATCH 1/1] 1.0.8.9: fix a potential segfault, and make a lisp pointercheck less obscure. --- src/runtime/print.c | 10 ++++++---- version.lisp-expr | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/runtime/print.c b/src/runtime/print.c index 9b86ef2..394d781 100644 --- a/src/runtime/print.c +++ b/src/runtime/print.c @@ -335,7 +335,7 @@ static void brief_list(lispobj obj) obj = NIL; break; } - print_obj(NULL, cons->car); + print_obj("", cons->car); obj = cons->cdr; space = 1; if (obj == NIL) @@ -343,7 +343,7 @@ static void brief_list(lispobj obj) } if (obj != NIL) { printf(" . "); - print_obj(NULL, obj); + print_obj("", obj); } putchar(')'); } @@ -731,8 +731,10 @@ static void print_obj(char *prefix, lispobj obj) dont_descend = 1; if (var == NULL && - /* FIXME: What does this "x & y & z & .." expression mean? */ - (obj & FUN_POINTER_LOWTAG & LIST_POINTER_LOWTAG & INSTANCE_POINTER_LOWTAG & OTHER_POINTER_LOWTAG) != 0) + ((obj & LOWTAG_MASK) == FUN_POINTER_LOWTAG || + (obj & LOWTAG_MASK) == LIST_POINTER_LOWTAG || + (obj & LOWTAG_MASK) == INSTANCE_POINTER_LOWTAG || + (obj & LOWTAG_MASK) == OTHER_POINTER_LOWTAG)) var = define_var(NULL, obj, 0); if (var != NULL) diff --git a/version.lisp-expr b/version.lisp-expr index 614905e..d45334b 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.8.8" +"1.0.8.9" -- 1.7.10.4