Bug #2745 ยป adjust_sp.patch
| compile.c (working copy) | ||
|---|---|---|
|
if (iseq->compile_data->redo_label != 0) {
|
||
|
LABEL *splabel = NEW_LABEL(0);
|
||
|
debugs("next in while loop\n");
|
||
|
if (!poped) {
|
||
|
ADD_INSN(ret, nd_line(node), putnil);
|
||
|
}
|
||
|
ADD_LABEL(ret, splabel);
|
||
|
COMPILE(ret, "next val/valid syntax?", node->nd_stts);
|
||
|
add_ensure_iseq(ret, iseq, 0);
|
||
| ... | ... | |
|
if (iseq->compile_data->redo_label) {
|
||
|
LABEL *splabel = NEW_LABEL(0);
|
||
|
debugs("redo in while");
|
||
|
if (!poped) {
|
||
|
ADD_INSN(ret, nd_line(node), putnil);
|
||
|
}
|
||
|
ADD_LABEL(ret, splabel);
|
||
|
ADD_ADJUST(ret, nd_line(node), iseq->compile_data->redo_label);
|
||
|
add_ensure_iseq(ret, iseq, 0);
|
||