summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index 49f10c5a5..1f34a8c5b 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1607,9 +1607,15 @@ RETRY_TRY_BLOCK:
if (argv0 != argv) {
value_move(&regs[1], argv, argc-mlen); /* m1 + o */
}
+ if (argc < m1) {
+ stack_clear(&regs[argc+1], m1-argc);
+ }
if (mlen) {
value_move(&regs[len-m2+1], &argv[argc-mlen], mlen);
}
+ if (mlen < m2) {
+ stack_clear(&regs[len-m2+mlen+1], m2-mlen);
+ }
if (r) {
regs[m1+o+1] = mrb_ary_new_capa(mrb, 0);
}