summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-12-08 16:41:56 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-12-08 16:42:23 +0900
commitc593e3e30af35423cd915e2efdb9766444916bd2 (patch)
treee886769f3775752bbac2690c9693f48f2ff68ce2
parent5bad1c742927bd8569575e2f3f955d08fd4f6e8a (diff)
downloadmruby-c593e3e30af35423cd915e2efdb9766444916bd2.tar.gz
mruby-c593e3e30af35423cd915e2efdb9766444916bd2.zip
vm.c: use `check_method_noarg()` to reduce code duplication; ref #5584
-rw-r--r--src/vm.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/vm.c b/src/vm.c
index 31e1e4bd1..efea22d4a 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1627,13 +1627,10 @@ RETRY_TRY_BLOCK:
mrb_vm_ci_proc_set(ci, p);
recv = p->body.func(mrb, recv);
}
- else if (MRB_METHOD_NOARG_P(m) &&
- (!(n == 0 || (n == CALL_MAXARGS && RARRAY_LEN(regs[1]) == 0)) ||
- !(nk == 0 || mrb_hash_empty_p(mrb, regs[n == CALL_MAXARGS ? 2 : n + 1])))) {
- argnum_error(mrb, 0);
- goto L_RAISE;
- }
else {
+ if (MRB_METHOD_NOARG_P(m)) {
+ check_method_noarg(mrb, ci);
+ }
recv = MRB_METHOD_FUNC(m)(mrb, recv);
}
mrb_gc_arena_shrink(mrb, ai);