adjust_sp.patch
| compile.c (working copy) | ||
|---|---|---|
| 3352 | 3352 |
if (iseq->compile_data->redo_label != 0) {
|
| 3353 | 3353 |
LABEL *splabel = NEW_LABEL(0); |
| 3354 | 3354 |
debugs("next in while loop\n");
|
| 3355 |
if (!poped) {
|
|
| 3356 |
ADD_INSN(ret, nd_line(node), putnil); |
|
| 3357 |
} |
|
| 3355 | 3358 |
ADD_LABEL(ret, splabel); |
| 3356 | 3359 |
COMPILE(ret, "next val/valid syntax?", node->nd_stts); |
| 3357 | 3360 |
add_ensure_iseq(ret, iseq, 0); |
| ... | ... | |
| 3418 | 3421 |
if (iseq->compile_data->redo_label) {
|
| 3419 | 3422 |
LABEL *splabel = NEW_LABEL(0); |
| 3420 | 3423 |
debugs("redo in while");
|
| 3424 |
if (!poped) {
|
|
| 3425 |
ADD_INSN(ret, nd_line(node), putnil); |
|
| 3426 |
} |
|
| 3421 | 3427 |
ADD_LABEL(ret, splabel); |
| 3422 | 3428 |
ADD_ADJUST(ret, nd_line(node), iseq->compile_data->redo_label); |
| 3423 | 3429 |
add_ensure_iseq(ret, iseq, 0); |