summaryrefslogtreecommitdiffhomepage
path: root/src/range.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-01-02 15:46:00 -0800
committerYukihiro "Matz" Matsumoto <[email protected]>2014-01-02 15:46:00 -0800
commitdc27c2be462771b0c28d90759851aaba26659991 (patch)
tree6b4ea610a90ba5556726553801b755ca6035f892 /src/range.c
parent1012c595f23df6016073b981f938cc24d0730cab (diff)
parent09bb30870b43feb967740842c3046372327b796b (diff)
downloadmruby-dc27c2be462771b0c28d90759851aaba26659991.tar.gz
mruby-dc27c2be462771b0c28d90759851aaba26659991.zip
Merge pull request #1634 from cremno/use-mrb_fixnum_p
tiny word boxing optimization
Diffstat (limited to 'src/range.c')
-rw-r--r--src/range.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/range.c b/src/range.c
index a27ced4cb..0eacc83d5 100644
--- a/src/range.c
+++ b/src/range.c
@@ -176,7 +176,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;
}
@@ -190,11 +190,7 @@ r_gt(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;
}
static mrb_bool
@@ -203,7 +199,7 @@ r_ge(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;
}