diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-04-04 22:17:26 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-04-04 22:17:26 +0900 |
| commit | ed41bbb199fb614bb68423d19d26c09c5027319a (patch) | |
| tree | 3d285d77e06f66d42cb1794884b76f33dee1ad6e /mrbgems | |
| parent | 50a223f21ff33718f3217ae61ee9fe326f14f935 (diff) | |
| download | mruby-ed41bbb199fb614bb68423d19d26c09c5027319a.tar.gz mruby-ed41bbb199fb614bb68423d19d26c09c5027319a.zip | |
Use `mrb_proc_arity` instead of `Proc#arity` call in `Method#arity`
Diffstat (limited to 'mrbgems')
| -rw-r--r-- | mrbgems/mruby-method/src/method.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/mrbgems/mruby-method/src/method.c b/mrbgems/mruby-method/src/method.c index fa8985694..9f1134227 100644 --- a/mrbgems/mruby-method/src/method.c +++ b/mrbgems/mruby-method/src/method.c @@ -212,19 +212,8 @@ static mrb_value method_arity(mrb_state *mrb, mrb_value self) { mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "proc")); - struct RProc *rproc; - struct RClass *orig; - mrb_value ret; - - if (mrb_nil_p(proc)) - return mrb_fixnum_value(-1); - - rproc = mrb_proc_ptr(proc); - orig = rproc->c; - rproc->c = mrb->proc_class; - ret = mrb_funcall(mrb, proc, "arity", 0); - rproc->c = orig; - return ret; + mrb_int arity = mrb_nil_p(proc) ? -1 : mrb_proc_arity(mrb_proc_ptr(proc)); + return mrb_fixnum_value(arity); } static mrb_value |
