~ 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