From e3f3ed2e3724f04279e0baba0317a7b0e6c24741 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Thu, 18 Sep 2014 15:12:40 +0100 Subject: [PATCH] be more explicit about fixnumness It would have been nice if the compiler had thrown some kind of warning for the use of a bignum where a fixnum was expected, even under (SAFETY 0). Given that no warning is thrown, be extremely explicit in constructing a suitable fixnum. --- src/compiler/globaldb.lisp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/globaldb.lisp b/src/compiler/globaldb.lisp index 4e001c932..e7817c1f5 100644 --- a/src/compiler/globaldb.lisp +++ b/src/compiler/globaldb.lisp @@ -62,7 +62,8 @@ (recurse (x depthoid) ; depthoid = a blend of level and length (declare (fixnum depthoid)) (cond ((atom x) (sxhash x)) - ((zerop depthoid) #xdedbeef) ; assume 29 bits in +fixnum + ((zerop depthoid) + #.(logand sb!xc:most-positive-fixnum #36Rglobaldbsxhashoid)) (t (sb!int:mix (recurse (car x) (1- depthoid)) (recurse (cdr x) (1- depthoid))))))) (traverse 0 name 10)))) -- 2.11.4.GIT