summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-range-ext
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-09-14 09:01:08 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2019-09-14 09:05:32 +0900
commit76f1aa7de5cf449c1f75188a2a6bc9953133fa91 (patch)
tree39fb9674912f55e707a28f4eab66935f7b9b0d68 /mrbgems/mruby-range-ext
parentfcd3f8450d75033af8a0c472ee9c1352e1a8186e (diff)
downloadmruby-76f1aa7de5cf449c1f75188a2a6bc9953133fa91.tar.gz
mruby-76f1aa7de5cf449c1f75188a2a6bc9953133fa91.zip
Remove `mrb_funcall` from `<=>` operations.
Diffstat (limited to 'mrbgems/mruby-range-ext')
-rw-r--r--mrbgems/mruby-range-ext/src/range.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/mrbgems/mruby-range-ext/src/range.c b/mrbgems/mruby-range-ext/src/range.c
index b8c76b796..36b684fad 100644
--- a/mrbgems/mruby-range-ext/src/range.c
+++ b/mrbgems/mruby-range-ext/src/range.c
@@ -5,24 +5,16 @@
static mrb_bool
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_fixnum_p(r)) {
- mrb_int c = mrb_fixnum(r);
- if (c == 0 || c == -1) return TRUE;
- }
+ mrb_int n = mrb_cmp(mrb, a, b);
+ if (n == 0 || n == -1) return TRUE;
return FALSE;
}
static mrb_bool
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 */
-
- return mrb_fixnum_p(r) && mrb_fixnum(r) == -1;
+ return mrb_cmp(mrb, a, b) == -1;
}
/*