From 9bc815aa5fd14f26d62ff1d6189157d7f09e23cb Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 14 Feb 2020 15:38:42 +0900 Subject: Hoisted out `rb_scan_args_result` --- class.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'class.c') diff --git a/class.c b/class.c index c2abce12bb..f181f33690 100644 --- a/class.c +++ b/class.c @@ -2079,6 +2079,15 @@ rb_scan_args_assign(const struct rb_scan_args_t *arg, int argc, const VALUE *con return argc; } +static int +rb_scan_args_result(const struct rb_scan_args_t *const arg, int argc) +{ + if (argc < 0) { + rb_error_arity(-1-argc, arg->n_mand, arg->f_var ? UNLIMITED_ARGUMENTS : arg->n_mand + arg->n_opt); + } + return argc; +} + #undef rb_scan_args int rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...) @@ -2089,10 +2098,7 @@ rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...) va_start(vargs,fmt); argc = rb_scan_args_assign(&arg, argc, argv, vargs); va_end(vargs); - if (argc < 0) { - rb_error_arity(-1-argc, arg.n_mand, arg.f_var ? UNLIMITED_ARGUMENTS : arg.n_mand + arg.n_opt); - } - return argc; + return rb_scan_args_result(&arg, argc); } #undef rb_scan_args_kw @@ -2105,10 +2111,7 @@ rb_scan_args_kw(int kw_flag, int argc, const VALUE *argv, const char *fmt, ...) va_start(vargs,fmt); argc = rb_scan_args_assign(&arg, argc, argv, vargs); va_end(vargs); - if (argc < 0) { - rb_error_arity(-1-argc, arg.n_mand, arg.f_var ? UNLIMITED_ARGUMENTS : arg.n_mand + arg.n_opt); - } - return argc; + return rb_scan_args_result(&arg, argc); } int -- cgit v1.2.3