summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-04-27 09:05:23 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-04-27 09:05:23 +0900
commit26758d89bd1bd05b5fbf2ac38a26aaf88009b57b (patch)
tree2e203bc05a0d223979d954be40bb8d2623671226
parent354e6fdce502ee70661d57809cd644521e2605cb (diff)
downloadmruby-26758d89bd1bd05b5fbf2ac38a26aaf88009b57b.tar.gz
mruby-26758d89bd1bd05b5fbf2ac38a26aaf88009b57b.zip
NODE_DEF should preserve stack region for lambda; ref #2136
-rw-r--r--src/codegen.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/codegen.c b/src/codegen.c
index 9428b135d..6c2ed41c9 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -1632,7 +1632,7 @@ codegen(codegen_scope *s, node *tree, int val)
break;
}
codegen(s, tree->cdr->cdr->car, VAL);
- push();pop();
+ push(); pop();
pop(); pop();
idx = new_msym(s, sym);
@@ -2404,6 +2404,7 @@ codegen(codegen_scope *s, node *tree, int val)
genop(s, MKOP_A(OP_TCLASS, cursp()));
push();
genop(s, MKOP_Abc(OP_LAMBDA, cursp(), idx, OP_L_METHOD));
+ push(); pop();
pop();
genop(s, MKOP_AB(OP_METHOD, cursp(), sym));
if (val) {