summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-range-ext/src
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-range-ext/src')
-rw-r--r--mrbgems/mruby-range-ext/src/range.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/mrbgems/mruby-range-ext/src/range.c b/mrbgems/mruby-range-ext/src/range.c
index 4e17dac8c..9fbfd431f 100644
--- a/mrbgems/mruby-range-ext/src/range.c
+++ b/mrbgems/mruby-range-ext/src/range.c
@@ -7,7 +7,7 @@ r_le(mrb_state *mrb, mrb_value a, mrb_value b)
mrb_value r = mrb_funcall(mrb, a, "<=>", 1, b); /* compare result */
/* output :a < b => -1, a = b => 0, a > b => +1 */
- if (mrb_type(r) == MRB_TT_FIXNUM) {
+ if (mrb_fixnum_p(r)) {
mrb_int c = mrb_fixnum(r);
if (c == 0 || c == -1) return TRUE;
}
@@ -21,11 +21,7 @@ r_lt(mrb_state *mrb, mrb_value a, mrb_value b)
mrb_value r = mrb_funcall(mrb, a, "<=>", 1, b);
/* output :a < b => -1, a = b => 0, a > b => +1 */
- if (mrb_type(r) == MRB_TT_FIXNUM) {
- if (mrb_fixnum(r) == -1) return TRUE;
- }
-
- return FALSE;
+ return mrb_fixnum_p(r) && mrb_fixnum(r) == -1;
}
/*
@@ -82,16 +78,16 @@ mrb_range_cover(mrb_state *mrb, mrb_value range)
static mrb_value
mrb_range_first(mrb_state *mrb, mrb_value range)
{
- mrb_value num;
+ mrb_int num;
mrb_value array;
struct RRange *r = mrb_range_ptr(range);
- if (mrb_get_args(mrb, "|o", &num) == 0) {
+ if (mrb_get_args(mrb, "|i", &num) == 0) {
return r->edges->beg;
}
array = mrb_funcall(mrb, range, "to_a", 0);
- return mrb_funcall(mrb, array, "first", 1, mrb_to_int(mrb, num));
+ return mrb_funcall(mrb, array, "first", 1, mrb_fixnum_value(num));
}
/*