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);
|