Update of /cvsroot/sbcl/sbcl/src/runtime
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2629/src/runtime
Modified Files:
print.c
Log Message:
1.0.8.9: fix a potential segfault, and make a lisp pointercheck less obscure.
Index: print.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/print.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- print.c 2 May 2007 17:42:33 -0000 1.28
+++ print.c 28 Jul 2007 12:53:00 -0000 1.29
@@ -335,7 +335,7 @@
obj = NIL;
break;
}
- print_obj(NULL, cons->car);
+ print_obj("", cons->car);
obj = cons->cdr;
space = 1;
if (obj == NIL)
@@ -343,7 +343,7 @@
}
if (obj != NIL) {
printf(" . ");
- print_obj(NULL, obj);
+ print_obj("", obj);
}
putchar(')');
}
@@ -731,8 +731,10 @@
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)
|