From bff93ba93f5a722b6aec47c5737794db2ac5d56e Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 12 Apr 2014 16:38:28 +0900 Subject: simplify Fixnum#== --- src/numeric.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/numeric.c b/src/numeric.c index 7c30449fb..6cca92f31 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -863,15 +863,16 @@ static mrb_value fix_equal(mrb_state *mrb, mrb_value x) { mrb_value y; - mrb_bool equal_p; mrb_get_args(mrb, "o", &y); - - equal_p = mrb_obj_equal(mrb, x, y) || - (mrb_type(y) == MRB_TT_FLOAT && - (mrb_float)mrb_fixnum(x) == mrb_float(y)); - - return mrb_bool_value(equal_p); + switch (mrb_type(y)) { + case MRB_TT_FIXNUM: + return mrb_bool_value(mrb_fixnum(x) == mrb_fixnum(y)); + case MRB_TT_FLOAT: + return mrb_bool_value((mrb_float)mrb_fixnum(x) == mrb_float(y)); + default: + return mrb_false_value(); + } } /* 15.2.8.3.8 */ -- cgit v1.2.3