diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-08-05 16:59:32 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-08-05 16:59:32 +0900 |
| commit | 7ecc16f97a75d0f0b1ecc0c08987f80e568b5749 (patch) | |
| tree | 831239e3125687fd0999aa33a1175e413bc06d7b /mrbgems/mruby-compiler/core/codegen.c | |
| parent | 9cb44f5ae3bf36aa0c13a02b26a12217f5e6fc87 (diff) | |
| download | mruby-7ecc16f97a75d0f0b1ecc0c08987f80e568b5749.tar.gz mruby-7ecc16f97a75d0f0b1ecc0c08987f80e568b5749.zip | |
codegen.c: remove code duplication from `NODE_ARRAY`.
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 11 |
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); |
