~ chicken-core (chicken-5) 802f433d2f474e8f2a1102b62600eb14131f84e7
commit 802f433d2f474e8f2a1102b62600eb14131f84e7 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Sat Jan 15 13:45:48 2011 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Sat Jan 15 13:45:48 2011 +0100 no need to check int64 range, it exceeds doubles anyway diff --git a/chicken.h b/chicken.h index af60209e..2f446fbe 100644 --- a/chicken.h +++ b/chicken.h @@ -776,10 +776,6 @@ DECL_C_PROC_p0 (128, 1,0,0,0,0,0,0,0) # define C_UWORD_MAX UINT_MAX #endif -#define C_WORD64_MIN LLONG_MIN -#define C_WORD64_MAX LLONG_MAX -#define C_UWORD64_MAX ULLONG_MAX - #ifndef C_PROVIDE_LIBC_STUBS # define C_FILEPTR FILE * diff --git a/runtime.c b/runtime.c index 8b479161..6e6821bb 100644 --- a/runtime.c +++ b/runtime.c @@ -5681,11 +5681,8 @@ C_regparm C_word C_fcall C_i_foreign_integer64_argumentp(C_word x) if((x & C_FIXNUM_BIT) != 0) return x; - if(!C_immediatep(x) && C_block_header(x) == C_FLONUM_TAG) { - m = C_flonum_magnitude(x); - - if(m >= C_WORD64_MIN && m <= C_WORD64_MAX) return x; - } + if(!C_immediatep(x) && C_block_header(x) == C_FLONUM_TAG) + return C_flonum_magnitude(x); barf(C_BAD_ARGUMENT_TYPE_NO_INTEGER_ERROR, NULL, x); return C_SCHEME_UNDEFINED; @@ -5698,11 +5695,8 @@ C_regparm C_word C_fcall C_i_foreign_unsigned_integer_argumentp(C_word x) if((x & C_FIXNUM_BIT) != 0) return x; - if(!C_immediatep(x) && C_block_header(x) == C_FLONUM_TAG) { - m = C_flonum_magnitude(x); - - if(m >= 0 && m <= C_UWORD_MAX) return x; - } + if(!C_immediatep(x) && C_block_header(x) == C_FLONUM_TAG) + return C_flonum_magnitude(x); barf(C_BAD_ARGUMENT_TYPE_NO_UINTEGER_ERROR, NULL, x); return C_SCHEME_UNDEFINED;Trap