Mercurial > hg > xemacs-beta
diff src/floatfns.c @ 2039:fd0cbe945410
[xemacs-hg @ 2004-04-22 03:24:00 by james]
Change VALBITS to INT_VALBITS in a number of places.
author | james |
---|---|
date | Thu, 22 Apr 2004 03:24:02 +0000 |
parents | 4e6a63799f08 |
children | 471242c84954 |
line wrap: on
line diff
--- a/src/floatfns.c Wed Apr 21 21:50:35 2004 +0000 +++ b/src/floatfns.c Thu Apr 22 03:24:02 2004 +0000 @@ -128,15 +128,16 @@ bignum_set_double (scratch_bignum, x); return Fcanonicalize_number (make_bignum_bg (scratch_bignum)); #else - if (x >= ((EMACS_INT) 1 << (VALBITS-1)) - || x <= - ((EMACS_INT) 1 << (VALBITS-1)) - (EMACS_INT) 1) - { - if (!UNBOUNDP (num2)) - range_error2 (name, num, num2); - else - range_error (name, num); - } - return (make_int ((EMACS_INT) x)); + REGISTER EMACS_INT result = (EMACS_INT) x; + + if (result > EMACS_INT_MAX || result < EMACS_INT_MIN) + { + if (!UNBOUNDP (num2)) + range_error2 (name, num, num2); + else + range_error (name, num); + } + return make_int (result); #endif /* HAVE_BIGNUM */ } @@ -798,7 +799,7 @@ double f = extract_float (number); if (f == 0.0) - return make_int (- (EMACS_INT)(((EMACS_UINT) 1) << (VALBITS - 1))); /* most-negative-fixnum */ + return make_int (EMACS_INT_MIN); #ifdef HAVE_LOGB { Lisp_Object val;