diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-08-19 11:56:04 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-08-19 11:56:04 +0900 |
| commit | 834523945e9a74d1b23c6d792b1770195636af42 (patch) | |
| tree | 03408e5644b0c687aed423934d35fd9497cbf5a5 /mrbgems/mruby-compiler/core/codegen.c | |
| parent | db098d3e0ef05372f6f08cdc3332790f0f65dcf1 (diff) | |
| download | mruby-834523945e9a74d1b23c6d792b1770195636af42.tar.gz mruby-834523945e9a74d1b23c6d792b1770195636af42.zip | |
Replace stack `pop()` by `push_n(2); pop_n(3)`; fix #3783
To calculate correct register windows size. The fix was suggested
by Christopher Aue.
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 92ea95257..c63533fef 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -1320,7 +1320,7 @@ codegen(codegen_scope *s, node *tree, int val) if (n4 && n4->car && nint(n4->car->car) == NODE_SPLAT) { codegen(s, n4->car, VAL); genop(s, MKOP_AB(OP_MOVE, cursp(), exc)); - pop(); + push_n(2); pop_n(3); genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern_lit(s->mrb, "__case_eqq")), 1)); } else { |
