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.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2022-02-08 12:47:50 +09:00
parent 0849a2885f
commit 4562ba14c0
+1 -1
View File
@@ -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) {