From 06d82e56957b09adda91cb8ad703b4118ba53a18 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 10 Jun 2012 23:06:44 +0900 Subject: [PATCH] fixing bignum integer-length for real --- lib/srfi/33/bit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/srfi/33/bit.c b/lib/srfi/33/bit.c index 06d90703..078808eb 100644 --- a/lib/srfi/33/bit.c +++ b/lib/srfi/33/bit.c @@ -266,8 +266,8 @@ static sexp sexp_integer_length (sexp ctx, sexp self, sexp_sint_t n, sexp x) { #if SEXP_USE_BIGNUMS } else if (sexp_bignump(x)) { hi = sexp_bignum_hi(x); - return sexp_make_fixnum(integer_log2(sexp_bignum_data(x)[hi]) - + hi*sizeof(sexp_uint_t)*CHAR_BIT); + return sexp_make_fixnum(integer_log2(sexp_bignum_data(x)[hi-1]) + + (hi-1)*sizeof(sexp_uint_t)*CHAR_BIT); #endif } else { return sexp_type_exception(ctx, self, SEXP_FIXNUM, x);