diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-01-02 15:46:00 -0800 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-01-02 15:46:00 -0800 |
| commit | dc27c2be462771b0c28d90759851aaba26659991 (patch) | |
| tree | 6b4ea610a90ba5556726553801b755ca6035f892 /src | |
| parent | 1012c595f23df6016073b981f938cc24d0730cab (diff) | |
| parent | 09bb30870b43feb967740842c3046372327b796b (diff) | |
| download | mruby-dc27c2be462771b0c28d90759851aaba26659991.tar.gz mruby-dc27c2be462771b0c28d90759851aaba26659991.zip | |
Merge pull request #1634 from cremno/use-mrb_fixnum_p
tiny word boxing optimization
Diffstat (limited to 'src')
| -rw-r--r-- | src/array.c | 4 | ||||
| -rw-r--r-- | src/codegen.c | 2 | ||||
| -rw-r--r-- | src/object.c | 6 | ||||
| -rw-r--r-- | src/range.c | 10 | ||||
| -rw-r--r-- | src/string.c | 2 |
5 files changed, 10 insertions, 14 deletions
diff --git a/src/array.c b/src/array.c index f9097baa7..ec2465be1 100644 --- a/src/array.c +++ b/src/array.c @@ -313,7 +313,7 @@ mrb_ary_cmp(mrb_state *mrb, mrb_value ary1) for (i=0; i<len; i++) { mrb_value v = ary_elt(ary2, i); r = mrb_funcall_argv(mrb, ary_elt(ary1, i), cmp, 1, &v); - if (mrb_type(r) != MRB_TT_FIXNUM || mrb_fixnum(r) != 0) return r; + if (!mrb_fixnum_p(r) || mrb_fixnum(r) != 0) return r; } } len = a1->len - a2->len; @@ -692,7 +692,7 @@ mrb_ary_aget(mrb_state *mrb, mrb_value self) return mrb_ary_ref(mrb, self, index); case 1: - if (mrb_type(argv[0]) != MRB_TT_FIXNUM) { + if (!mrb_fixnum_p(argv[0])) { mrb_raise(mrb, E_TYPE_ERROR, "expected Fixnum"); } if (index < 0) index += a->len; diff --git a/src/codegen.c b/src/codegen.c index 32530e80f..d0ec12bac 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -421,7 +421,7 @@ new_lit(codegen_scope *s, mrb_value val) case MRB_TT_FIXNUM: for (i=0; i<s->irep->plen; i++) { pv = &s->irep->pool[i]; - if (mrb_type(*pv) != MRB_TT_FIXNUM) continue; + if (!mrb_fixnum_p(*pv)) continue; if (mrb_fixnum(*pv) == mrb_fixnum(val)) return i; } break; diff --git a/src/object.c b/src/object.c index 529c168ee..daa76a03f 100644 --- a/src/object.c +++ b/src/object.c @@ -326,9 +326,9 @@ mrb_check_to_integer(mrb_state *mrb, mrb_value val, const char *method) { mrb_value v; - if (mrb_type(val) == MRB_TT_FIXNUM) return val; + if (mrb_fixnum_p(val)) return val; v = convert_type(mrb, val, "Integer", method, FALSE); - if (mrb_nil_p(v) || mrb_type(v) != MRB_TT_FIXNUM) { + if (mrb_nil_p(v) || !mrb_fixnum_p(v)) { return mrb_nil_value(); } return v; @@ -404,7 +404,7 @@ mrb_check_type(mrb_state *mrb, mrb_value x, enum mrb_vtype t) if (mrb_nil_p(x)) { etype = "nil"; } - else if (mrb_type(x) == MRB_TT_FIXNUM) { + else if (mrb_fixnum_p(x)) { etype = "Fixnum"; } else if (mrb_type(x) == MRB_TT_SYMBOL) { 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; } diff --git a/src/string.c b/src/string.c index a687a4c29..e8c37180d 100644 --- a/src/string.c +++ b/src/string.c @@ -1243,7 +1243,7 @@ mrb_str_include(mrb_state *mrb, mrb_value self) mrb_bool include_p; mrb_get_args(mrb, "o", &str2); - if (mrb_type(str2) == MRB_TT_FIXNUM) { + if (mrb_fixnum_p(str2)) { include_p = (memchr(RSTRING_PTR(self), mrb_fixnum(str2), RSTRING_LEN(self)) != NULL); } else { |
