1.0.8.9: fix a potential segfault, and make a lisp pointercheck less obscure.
authorThiemo Seufer <ths@networkno.de>
Sat, 28 Jul 2007 12:53:00 +0000 (12:53 +0000)
committerThiemo Seufer <ths@networkno.de>
Sat, 28 Jul 2007 12:53:00 +0000 (12:53 +0000)
src/runtime/print.c
version.lisp-expr

index 9b86ef2..394d781 100644 (file)
@@ -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)
index 614905e..d45334b 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.8.8"
+"1.0.8.9"