Fixing integer-length for bignums.

This commit is contained in:
Alex Shinn 2012-06-07 00:48:43 +09:00
parent 6ca990016a
commit 25247ee4b5

View file

@ -267,7 +267,7 @@ static sexp sexp_integer_length (sexp ctx, sexp self, sexp_sint_t n, sexp x) {
} else if (sexp_bignump(x)) { } else if (sexp_bignump(x)) {
hi = sexp_bignum_hi(x); hi = sexp_bignum_hi(x);
return sexp_make_fixnum(integer_log2(sexp_bignum_data(x)[hi]) return sexp_make_fixnum(integer_log2(sexp_bignum_data(x)[hi])
+ hi*sizeof(sexp_uint_t)); + hi*sizeof(sexp_uint_t)*CHAR_BIT);
#endif #endif
} else { } else {
return sexp_type_exception(ctx, self, SEXP_FIXNUM, x); return sexp_type_exception(ctx, self, SEXP_FIXNUM, x);