summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-09-15 18:19:27 +0900
committerGitHub <[email protected]>2019-09-15 18:19:27 +0900
commite790fb51288b2619abcf28b220add272fdf3bf79 (patch)
treec0f2e1a7472f0f658abb6f45746ce29bbac43ea7
parent76355dee686254dcf51fcd42fbe13c8f00c3aa95 (diff)
parent7fcda585bc27a4039140a34df2005ea249ed14fe (diff)
downloadmruby-e790fb51288b2619abcf28b220add272fdf3bf79.tar.gz
mruby-e790fb51288b2619abcf28b220add272fdf3bf79.zip
Merge pull request #4710 from shuujii/refactor-mrb_type-in-include-mruby-boxing_word.h
Refactor `mrb_type` in `include/mruby/boxing_word.h`
-rw-r--r--include/mruby/boxing_word.h22
1 files changed, 6 insertions, 16 deletions
diff --git a/include/mruby/boxing_word.h b/include/mruby/boxing_word.h
index 1a0c59ddb..7fda4919d 100644
--- a/include/mruby/boxing_word.h
+++ b/include/mruby/boxing_word.h
@@ -144,22 +144,12 @@ MRB_API mrb_value mrb_word_boxing_float_pool(struct mrb_state*, mrb_float);
MRB_INLINE enum mrb_vtype
mrb_type(mrb_value o)
{
- switch (o.w) {
- case MRB_Qfalse:
- case MRB_Qnil:
- return MRB_TT_FALSE;
- case MRB_Qtrue:
- return MRB_TT_TRUE;
- case MRB_Qundef:
- return MRB_TT_UNDEF;
- }
- if (mrb_fixnum_p(o)) {
- return MRB_TT_FIXNUM;
- }
- if (mrb_symbol_p(o)) {
- return MRB_TT_SYMBOL;
- }
- return o.value.bp->tt;
+ return !mrb_bool(o) ? MRB_TT_FALSE :
+ mrb_true_p(o) ? MRB_TT_TRUE :
+ mrb_fixnum_p(o) ? MRB_TT_FIXNUM :
+ mrb_symbol_p(o) ? MRB_TT_SYMBOL :
+ mrb_undef_p(o) ? MRB_TT_UNDEF :
+ o.value.bp->tt;
}
#endif /* MRUBY_BOXING_WORD_H */