diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-09-15 18:19:27 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-09-15 18:19:27 +0900 |
| commit | e790fb51288b2619abcf28b220add272fdf3bf79 (patch) | |
| tree | c0f2e1a7472f0f658abb6f45746ce29bbac43ea7 | |
| parent | 76355dee686254dcf51fcd42fbe13c8f00c3aa95 (diff) | |
| parent | 7fcda585bc27a4039140a34df2005ea249ed14fe (diff) | |
| download | mruby-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.h | 22 |
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 */ |
