summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal.h4
-rw-r--r--numeric.c10
-rw-r--r--rational.c4
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
diff --git a/numeric.c b/numeric.c
index 2986f98373..e2c26f54c2 100644
--- a/numeric.c
+++ b/numeric.c
@@ -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;