diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-09-02 17:12:17 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-09-02 17:43:10 +0900 |
commit | 137fde717bfa4d1a116bf1d56c288a1f3016126c (patch) | |
tree | 88bd3fd8880ddfa04c97b5edd8f4204066c6c0b7 | |
parent | d1d76f24288993b4f004770397a05c0be8ac13b4 (diff) |
Make internal predicate functions to return simple boolean
-rw-r--r-- | complex.c | 15 | ||||
-rw-r--r-- | rational.c | 2 |
2 files changed, 7 insertions, 10 deletions
@@ -338,29 +338,26 @@ VALUE rb_flo_is_finite_p(VALUE num); inline static int f_finite_p(VALUE x) { - if (RB_INTEGER_TYPE_P(x)) { + if (RB_INTEGER_TYPE_P(x) || RB_TYPE_P(x, T_RATIONAL)) { return TRUE; } else if (RB_FLOAT_TYPE_P(x)) { return (int)rb_flo_is_finite_p(x); } - else if (RB_TYPE_P(x, T_RATIONAL)) { - return TRUE; - } return RTEST(rb_funcallv(x, id_finite_p, 0, 0)); } VALUE rb_flo_is_infinite_p(VALUE num); -inline static VALUE +inline static int f_infinite_p(VALUE x) { if (RB_INTEGER_TYPE_P(x) || RB_TYPE_P(x, T_RATIONAL)) { - return Qnil; + return FALSE; } else if (RB_FLOAT_TYPE_P(x)) { - return rb_flo_is_infinite_p(x); + return RTEST(rb_flo_is_infinite_p(x)); } - return rb_funcallv(x, id_infinite_p, 0, 0); + return RTEST(rb_funcallv(x, id_infinite_p, 0, 0)); } inline static int @@ -1469,7 +1466,7 @@ rb_complex_infinite_p(VALUE self) { get_dat1(self); - if (NIL_P(f_infinite_p(dat->real)) && NIL_P(f_infinite_p(dat->imag))) { + if (!f_infinite_p(dat->real) && !f_infinite_p(dat->imag)) { return Qnil; } return ONE; diff --git a/rational.c b/rational.c index 8fae9c72e0..313dd0892e 100644 --- a/rational.c +++ b/rational.c @@ -128,7 +128,7 @@ f_abs(VALUE x) } -inline static VALUE +inline static int f_integer_p(VALUE x) { return RB_INTEGER_TYPE_P(x); |