aboutsummaryrefslogtreecommitdiffstats
path: root/proc.c
diff options
context:
space:
mode:
authorS.H <gamelinks007@gmail.com>2022-04-25 06:06:45 +0900
committerGitHub <noreply@github.com>2022-04-24 14:06:45 -0700
commit554befbf2716db56a215b39f619cce76dd624b8e (patch)
tree6bb9680996888e7ab67c8eff3df8ee2be61fb701 /proc.c
parent84f410e5e64a2480a86de7c50f01f01f71816435 (diff)
downloadruby-554befbf2716db56a215b39f619cce76dd624b8e.tar.gz
Reuse `rb_proc_arity`
Diffstat (limited to 'proc.c')
-rw-r--r--proc.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/proc.c b/proc.c
index d5d0bbdb46..9bb02a0114 100644
--- a/proc.c
+++ b/proc.c
@@ -1208,21 +1208,16 @@ rb_block_arity(void)
}
block_setup(&block, block_handler);
- min = rb_vm_block_min_max_arity(&block, &max);
switch (vm_block_type(&block)) {
case block_handler_type_symbol:
return -1;
case block_handler_type_proc:
- {
- VALUE procval = block_handler;
- rb_proc_t *proc;
- GetProcPtr(procval, proc);
- return (proc->is_lambda ? min == max : max != UNLIMITED_ARGUMENTS) ? min : -min-1;
- }
+ return rb_proc_arity(block_handler);
default:
+ min = rb_vm_block_min_max_arity(&block, &max);
return max != UNLIMITED_ARGUMENTS ? min : -min-1;
}
}