numeric.c, rational.c: refactor by using FIXNUM_NEGATIVE_P and FIXNUM_ZERO_P
* numeric.c (num_zero_p, fix_divide, fix_mod, fix_divmod): refactor by using FIXNUM_NEGATIVE_P and FIXNUM_ZERO_P. * rational.c (INT_NEGATIVE_P, INT_ZERO_P): ditto. * internal.h: move FIXNUM_NEGATIVE_P and FIXNUM_ZERO_P from numeric.c git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8ee8c5eeb6
commit
f64a53462e
@ -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
|
||||
|
10
numeric.c
10
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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user