diff options
| author | Masamitsu MURASE <[email protected]> | 2013-02-25 00:20:10 +0900 |
|---|---|---|
| committer | Masamitsu MURASE <[email protected]> | 2013-02-25 00:20:10 +0900 |
| commit | c6d2cde148d54fd1489eb3589a10d07753c701a7 (patch) | |
| tree | f61a94d7282f7059d453280c22551d97a2cd9704 /src | |
| parent | bbd50cca2f78c642517beaeccd26400798b1ec46 (diff) | |
| download | mruby-c6d2cde148d54fd1489eb3589a10d07753c701a7.tar.gz mruby-c6d2cde148d54fd1489eb3589a10d07753c701a7.zip | |
Adjust stack position of NODE_RESCUE.
Diffstat (limited to 'src')
| -rw-r--r-- | src/codegen.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/codegen.c b/src/codegen.c index 86d61fecf..d3239259b 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1083,6 +1083,7 @@ codegen(codegen_scope *s, node *tree, int val) } if (n3->cdr->cdr->car) { codegen(s, n3->cdr->cdr->car, val); + if (val) pop(); } tmp = new_label(s); genop(s, MKOP_sBx(OP_JMP, exend)); @@ -1102,6 +1103,9 @@ codegen(codegen_scope *s, node *tree, int val) if (tree->car) { codegen(s, tree->car, val); } + else if (val) { + push(); + } dispatch_linked(s, exend); loop_pop(s, NOVAL); } |
