diff options
-rw-r--r-- | internal.h | 4 | ||||
-rw-r--r-- | numeric.c | 10 | ||||
-rw-r--r-- | rational.c | 4 |
3 files changed, 10 insertions, 8 deletions
diff --git a/internal.h b/internal.h index e435ed0a3c..fec2dbeedf 100644 --- a/internal.h +++ b/internal.h @@ -1136,6 +1136,10 @@ VALUE rb_math_sqrt(VALUE); void Init_newline(void); /* numeric.c */ + +#define FIXNUM_NEGATIVE_P(num) ((SIGNED_VALUE)(num) < 0) +#define FIXNUM_ZERO_P(num) ((num) == INT2FIX(0)) + #ifndef ROUND_DEFAULT # define ROUND_DEFAULT RUBY_NUM_ROUND_HALF_EVEN #endif @@ -262,8 +262,6 @@ compare_with_zero(VALUE num, ID mid) } #define FIXNUM_POSITIVE_P(num) ((SIGNED_VALUE)(num) > (SIGNED_VALUE)INT2FIX(0)) -#define FIXNUM_NEGATIVE_P(num) ((SIGNED_VALUE)(num) < 0) -#define FIXNUM_ZERO_P(num) ((num) == INT2FIX(0)) static inline int int_pos_p(VALUE num) @@ -784,7 +782,7 @@ static VALUE num_zero_p(VALUE num) { if (FIXNUM_P(num)) { - if (FIX2LONG(num) == 0) { + if (FIXNUM_ZERO_P(num)) { return Qtrue; } } @@ -3608,7 +3606,7 @@ static VALUE fix_divide(VALUE x, VALUE y, ID op) { if (FIXNUM_P(y)) { - if (FIX2LONG(y) == 0) rb_num_zerodiv(); + if (FIXNUM_ZERO_P(y)) rb_num_zerodiv(); return rb_fix_div_fix(x, y); } else if (RB_TYPE_P(y, T_BIGNUM)) { @@ -3699,7 +3697,7 @@ static VALUE fix_mod(VALUE x, VALUE y) { if (FIXNUM_P(y)) { - if (FIX2LONG(y) == 0) rb_num_zerodiv(); + if (FIXNUM_ZERO_P(y)) rb_num_zerodiv(); return rb_fix_mod_fix(x, y); } else if (RB_TYPE_P(y, T_BIGNUM)) { @@ -3772,7 +3770,7 @@ fix_divmod(VALUE x, VALUE y) { if (FIXNUM_P(y)) { VALUE div, mod; - if (FIX2LONG(y) == 0) rb_num_zerodiv(); + if (FIXNUM_ZERO_P(y)) rb_num_zerodiv(); rb_fix_divmod_fix(x, y, &div, &mod); return rb_assoc_new(div, mod); } diff --git a/rational.c b/rational.c index e612ab225c..e4f59895bf 100644 --- a/rational.c +++ b/rational.c @@ -27,8 +27,8 @@ #define GMP_GCD_DIGITS 1 -#define INT_NEGATIVE_P(x) (FIXNUM_P(x) ? ((SIGNED_VALUE)(x) < 0) : BIGNUM_NEGATIVE_P(x)) -#define INT_ZERO_P(x) (FIXNUM_P(x) ? (FIX2LONG(x) == 0) : rb_bigzero_p(x)) +#define INT_NEGATIVE_P(x) (FIXNUM_P(x) ? FIXNUM_NEGATIVE_P(x) : BIGNUM_NEGATIVE_P(x)) +#define INT_ZERO_P(x) (FIXNUM_P(x) ? FIXNUM_ZERO_P(x) : rb_bigzero_p(x)) VALUE rb_cRational; |