diff options
| author | Christopher Aue <[email protected]> | 2017-08-22 15:17:12 +0200 |
|---|---|---|
| committer | Christopher Aue <[email protected]> | 2017-08-23 18:15:27 +0200 |
| commit | 1221f7676eda4e656f120a21fd0f354d242df457 (patch) | |
| tree | 700bc483bd422eaef7913e3f7e2c665e59799202 /mrbgems/mruby-compiler/core | |
| parent | c040c8d92bc940cd6f7b451c9f8968df5d21c945 (diff) | |
| download | mruby-1221f7676eda4e656f120a21fd0f354d242df457.tar.gz mruby-1221f7676eda4e656f120a21fd0f354d242df457.zip | |
Fixed register windows of OP_SENDs generated by NODE_{FOR,SYMBOLS}; ref #3783
Diffstat (limited to 'mrbgems/mruby-compiler/core')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 9586ade52..1e92fbd19 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -631,6 +631,7 @@ for_body(codegen_scope *s, node *tree) scope_finish(s); s = prev; genop(s, MKOP_Abc(OP_LAMBDA, cursp(), s->irep->rlen-1, OP_L_BLOCK)); + push();pop(); /* space for a block */ pop(); idx = new_msym(s, mrb_intern_lit(s->mrb, "each")); genop(s, MKOP_ABC(OP_SENDB, cursp(), idx, 0)); @@ -1095,6 +1096,7 @@ gen_vmassignment(codegen_scope *s, node *tree, int rhs, int val) static void gen_send_intern(codegen_scope *s) { + push();pop(); /* space for a block */ pop(); genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern_lit(s->mrb, "intern")), 0)); push(); |
