diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-27 09:05:23 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-27 09:05:23 +0900 |
| commit | 26758d89bd1bd05b5fbf2ac38a26aaf88009b57b (patch) | |
| tree | 2e203bc05a0d223979d954be40bb8d2623671226 /src/codegen.c | |
| parent | 354e6fdce502ee70661d57809cd644521e2605cb (diff) | |
| download | mruby-26758d89bd1bd05b5fbf2ac38a26aaf88009b57b.tar.gz mruby-26758d89bd1bd05b5fbf2ac38a26aaf88009b57b.zip | |
NODE_DEF should preserve stack region for lambda; ref #2136
Diffstat (limited to 'src/codegen.c')
| -rw-r--r-- | src/codegen.c | 3 |
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) { |
