--- cvsroot/microscheme/scheme.c 2015/11/27 02:12:08 1.24 +++ cvsroot/microscheme/scheme.c 2015/11/27 04:37:26 1.25 @@ -221,12 +221,6 @@ #endif static int is_zero_rvalue (RVALUE x); -ecb_inline int -num_is_integer (pointer p) -{ - return num_is_fixnum (p->object.number); -} - static num num_zero; static num num_one; @@ -274,13 +268,7 @@ INTERFACE int is_integer (pointer p) { - if (!is_number (p)) - return 0; - - if (num_is_integer (p) || ivalue (p) == rvalue (p)) - return 1; - - return 0; + return is_number (p) && num_is_fixnum (p->object.number); } INTERFACE int @@ -2482,7 +2470,7 @@ if (f <= 1 || f == 10) /* f is the base for numbers if > 1 */ { - if (num_is_integer (l)) + if (is_integer (l)) xnum (p, ivalue_unchecked (l)); #if USE_REAL else @@ -2747,8 +2735,7 @@ else if (is_number (a)) { if (is_number (b)) - if (num_is_integer (a) == num_is_integer (b)) - return num_cmp (nvalue (a), nvalue (b)) == 0; + return num_cmp (nvalue (a), nvalue (b)) == 0; return 0; } @@ -3932,7 +3919,7 @@ { #if USE_MATH case OP_INEX2EX: /* inexact->exact */ - if (num_is_integer (x)) + if (is_integer (x)) s_return (x); else if (modf (rvalue_unchecked (x), &dd) == 0) s_return (mk_integer (SCHEME_A_ ivalue (x))); @@ -3965,7 +3952,7 @@ int real_result = 1; pointer y = cadr (args); - if (num_is_integer (x) && num_is_integer (y)) + if (is_integer (x) && is_integer (y)) real_result = 0; /* This 'if' is an R5RS compatibility fix. */