summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2013-03-19 10:39:53 +0900
committerMasaki Muranaka <[email protected]>2013-03-19 11:04:22 +0900
commit992af98b323530248d1d7732dbe48b70da913ad8 (patch)
treed23696740af1156a4cf77cbc7b2643d14041ae12
parent698e2815adeb9894cd02096a962fe669308fbb3c (diff)
downloadmruby-992af98b323530248d1d7732dbe48b70da913ad8.tar.gz
mruby-992af98b323530248d1d7732dbe48b70da913ad8.zip
Use mrb_true_or_false_value() / in fix_equal().
-rw-r--r--src/numeric.c16
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 */