diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-09-26 22:23:27 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-09-26 22:23:27 +0900 |
| commit | feaf80d8996340bd0316fda72418b1abd774bd59 (patch) | |
| tree | 43801fcc666b937f60086b0d51271bb28eab1cc0 /mrbgems/mruby-method | |
| parent | 60cc46a92cf93f408dac22658c6a206e882e0e04 (diff) | |
| download | mruby-feaf80d8996340bd0316fda72418b1abd774bd59.tar.gz mruby-feaf80d8996340bd0316fda72418b1abd774bd59.zip | |
Use type predicate macros instead of `mrb_type` if possible
For efficiency with `MRB_WORD_BOXING` (implement type predicate macros for
all `enum mrb_vtype`).
Diffstat (limited to 'mrbgems/mruby-method')
| -rw-r--r-- | mrbgems/mruby-method/src/method.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mrbgems/mruby-method/src/method.c b/mrbgems/mruby-method/src/method.c index d95ca1664..1557e60ca 100644 --- a/mrbgems/mruby-method/src/method.c +++ b/mrbgems/mruby-method/src/method.c @@ -14,10 +14,10 @@ method_object_alloc(mrb_state *mrb, struct RClass *mclass) static void bind_check(mrb_state *mrb, mrb_value recv, mrb_value owner) { - if (mrb_type(owner) != MRB_TT_MODULE && + if (!mrb_module_p(owner) && mrb_class_ptr(owner) != mrb_obj_class(mrb, recv) && !mrb_obj_is_kind_of(mrb, recv, mrb_class_ptr(owner))) { - if (mrb_type(owner) == MRB_TT_SCLASS) { + if (mrb_sclass_p(owner)) { mrb_raise(mrb, E_TYPE_ERROR, "singleton method called for a different object"); } else { mrb_raisef(mrb, E_TYPE_ERROR, "bind argument must be an instance of %v", owner); |
