summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-08-05 16:59:32 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-08-05 16:59:32 +0900
commit7ecc16f97a75d0f0b1ecc0c08987f80e568b5749 (patch)
tree831239e3125687fd0999aa33a1175e413bc06d7b
parent9cb44f5ae3bf36aa0c13a02b26a12217f5e6fc87 (diff)
downloadmruby-7ecc16f97a75d0f0b1ecc0c08987f80e568b5749.tar.gz
mruby-7ecc16f97a75d0f0b1ecc0c08987f80e568b5749.zip
codegen.c: remove code duplication from `NODE_ARRAY`.
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index 9915440dd..eb53d5407 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -1480,6 +1480,7 @@ gen_values(codegen_scope *s, node *t, int val, int extra)
if (is_splat && n == 0 && nint(t->car->cdr->car) == NODE_ARRAY) {
codegen(s, t->car->cdr, VAL);
pop();
+ t = t->cdr;
}
else {
pop_n(n);
@@ -1489,17 +1490,7 @@ gen_values(codegen_scope *s, node *t, int val, int extra)
else {
genop_2(s, OP_ARRAY, cursp(), n);
}
- push();
- codegen(s, t->car, VAL);
- pop(); pop();
- if (is_splat) {
- genop_1(s, OP_ARYCAT, cursp());
- }
- else {
- genop_1(s, OP_ARYPUSH, cursp());
- }
}
- t = t->cdr;
while (t) {
push();
codegen(s, t->car, VAL);