diff options
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index dbf9dcd39..1ca86761c 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -1293,8 +1293,8 @@ codegen(codegen_scope *s, node *tree, int val) if (tree->car) { node *n2 = tree->car; int exc = cursp(); - int cnt = 0; + genop(s, MKOP_ABC(OP_RESCUE, exc, 0, 0)); push(); while (n2) { node *n3 = n2->car; @@ -1304,9 +1304,6 @@ codegen(codegen_scope *s, node *tree, int val) pos2 = 0; do { if (n4 && n4->car && (intptr_t)n4->car->car == NODE_SPLAT) { - if (cnt == 0) { - genop(s, MKOP_ABC(OP_RESCUE, exc, 0, cnt)); cnt = 1; - } genop(s, MKOP_AB(OP_MOVE, cursp(), exc)); push(); codegen(s, n4->car, VAL); @@ -1322,7 +1319,7 @@ codegen(codegen_scope *s, node *tree, int val) push(); } pop(); - genop(s, MKOP_ABC(OP_RESCUE, exc, cursp(), cnt)); cnt = 1; + genop(s, MKOP_ABC(OP_RESCUE, exc, cursp(), 1)); } tmp = genop(s, MKOP_AsBx(OP_JMPIF, cursp(), pos2)); pos2 = tmp; |
