diff options
| -rw-r--r-- | src/class.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c index efe4b8a92..a7d9ebf37 100644 --- a/src/class.c +++ b/src/class.c @@ -897,7 +897,7 @@ mrb_get_args(mrb_state *mrb, const char *format, ...) } break; case '|': - if (opt_skip && i == argc) return argc; + if (opt_skip && i == argc) goto finish; opt = TRUE; break; case '?': @@ -1004,6 +1004,8 @@ mrb_get_args(mrb_state *mrb, const char *format, ...) if (!c && argc > i) { mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments"); } + +finish: va_end(ap); return i; } |
