From 834523945e9a74d1b23c6d792b1770195636af42 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 19 Aug 2017 11:56:04 +0900 Subject: 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. --- 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 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 { -- cgit v1.2.3