diff options
| author | Masaki Muranaka <[email protected]> | 2013-03-19 10:39:53 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2013-03-19 11:04:22 +0900 |
| commit | 992af98b323530248d1d7732dbe48b70da913ad8 (patch) | |
| tree | d23696740af1156a4cf77cbc7b2643d14041ae12 | |
| parent | 698e2815adeb9894cd02096a962fe669308fbb3c (diff) | |
| download | mruby-992af98b323530248d1d7732dbe48b70da913ad8.tar.gz mruby-992af98b323530248d1d7732dbe48b70da913ad8.zip | |
Use mrb_true_or_false_value() / in fix_equal().
| -rw-r--r-- | src/numeric.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/numeric.c b/src/numeric.c index e1f6fb6b2..262fa921a 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -926,19 +926,15 @@ static mrb_value fix_equal(mrb_state *mrb, mrb_value x) { mrb_value y; + mrb_bool equal_p; mrb_get_args(mrb, "o", &y); - if (mrb_obj_equal(mrb, x, y)) return mrb_true_value(); - switch (mrb_type(y)) { - case MRB_TT_FLOAT: - if ((mrb_float)mrb_fixnum(x) == mrb_float(y)) - return mrb_true_value(); - /* fall through */ - case MRB_TT_FIXNUM: - default: - return mrb_false_value(); - } + equal_p = mrb_obj_equal(mrb, x, y) || + (mrb_type(y) == MRB_TT_FLOAT && + (mrb_float)mrb_fixnum(x) == mrb_float(y)); + + return mrb_true_or_false_value(equal_p); } /* 15.2.8.3.8 */ |
