diff options
-rw-r--r-- | class.c | 7 | ||||
-rw-r--r-- | include/ruby/ruby.h | 8 |
2 files changed, 3 insertions, 12 deletions
@@ -1964,7 +1964,6 @@ struct rb_scan_args_t { int n_mand; int argi; VALUE hash; - VALUE last_hash; }; static void @@ -2065,11 +2064,7 @@ rb_scan_args_assign(struct rb_scan_args_t *arg, va_list vargs) var = va_arg(vargs, VALUE *); if (0 < n_var) { - if (var) { - int f_last = (arg->argc == arg->n_trail); - *var = rb_ary_new4(n_var - f_last, &arg->argv[argi]); - if (f_last) rb_ary_push(*var, arg->last_hash); - } + if (var) *var = rb_ary_new4(n_var, &arg->argv[argi]); argi += n_var; } else { diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index dc1eb29e0c..3402d73515 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -2482,7 +2482,7 @@ rb_scan_args_set(int argc, const VALUE *argv, # endif { int i, argi = 0, vari = 0; - VALUE *var, hash = Qnil, last_hash = 0; + VALUE *var, hash = Qnil; const int n_mand = n_lead + n_trail; if (f_hash && argc > 0 && rb_keyword_given_p()) { @@ -2517,11 +2517,7 @@ rb_scan_args_set(int argc, const VALUE *argv, var = vars[vari++]; if (0 < n_var) { - if (var) { - int f_last = (argc == n_trail); - *var = rb_ary_new4(n_var-f_last, &argv[argi]); - if (f_last) rb_ary_push(*var, last_hash); - } + if (var) *var = rb_ary_new4(n_var, &argv[argi]); argi += n_var; } else { |