From 4562ba14c0f716b6dfd56b83844100747ba6c85c Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 8 Feb 2022 12:47:50 +0900 Subject: [PATCH] codegen.c: `limit` check was too restrictive in `gen_values()`. That can create unnecessary arrays when more than 12 arguments are given to a method. --- mrbgems/mruby-compiler/core/codegen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 86f88b6e6..c49ea7514 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -1551,7 +1551,7 @@ gen_values(codegen_scope *s, node *t, int val, int limit) while (t) { int is_splat = nint(t->car->car) == NODE_SPLAT; - if (is_splat || n >= limit-1 || cursp() >= slimit) { /* flush stack */ + if (is_splat || n > limit || cursp() >= slimit) { /* flush stack */ pop_n(n); if (first) { if (n == 0) {