mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-20 22:29:16 +02:00
Fixing unsigned integer bug in bit-set?.
This commit is contained in:
parent
befe63d6ba
commit
fa0c699a6c
1 changed files with 3 additions and 3 deletions
|
@ -281,14 +281,14 @@ static sexp sexp_bit_set_p (sexp ctx, sexp self, sexp_sint_t n, sexp i, sexp x)
|
|||
if (! sexp_fixnump(i))
|
||||
return sexp_type_exception(ctx, self, SEXP_FIXNUM, i);
|
||||
if (sexp_fixnump(x)) {
|
||||
return sexp_make_boolean(sexp_unbox_fixnum(x) & (1<<sexp_unbox_fixnum(i)));
|
||||
return sexp_make_boolean(sexp_unbox_fixnum(x) & (1UL<<sexp_unbox_fixnum(i)));
|
||||
#if SEXP_USE_BIGNUMS
|
||||
} else if (sexp_bignump(x)) {
|
||||
pos = sexp_unbox_fixnum(i) / (sizeof(sexp_uint_t)*CHAR_BIT);
|
||||
return sexp_make_boolean((pos < sexp_bignum_length(x))
|
||||
&& (sexp_bignum_data(x)[pos]
|
||||
& (1<<(sexp_unbox_fixnum(i)
|
||||
- pos*sizeof(sexp_uint_t)*CHAR_BIT))));
|
||||
& (1UL<<(sexp_unbox_fixnum(i)
|
||||
- pos*sizeof(sexp_uint_t)*CHAR_BIT))));
|
||||
#endif
|
||||
} else {
|
||||
return sexp_type_exception(ctx, self, SEXP_FIXNUM, x);
|
||||
|
|
Loading…
Add table
Reference in a new issue