This reverts
c53f1caa and
cc93af5f.
See the thread starting at
http://www.nntp.perl.org/group/perl.perl5.porters/2008/04/msg135885.html
Basically, change
c53f1caa made a change, but then
cc93af5f undid it,
but differently. This resulted in dead code left by
c53f1caa (type is
unused after the assignment). And in the end the code behaved exactly
the same way, so the original problem was not fixed. I suspect this
was a B::C bug.
op_free(kid);
}
}
+ if (type == OP_NULL)
+ type = (OPCODE)o->op_targ;
Slab_to_rw(o);
/* COP* is not cleared by op_clear() so that we may track line
* numbers etc even after null() */
- if (type == OP_NEXTSTATE || type == OP_DBSTATE
- || (type == OP_NULL /* the COP might have been null'ed */
- && ((OPCODE)o->op_targ == OP_NEXTSTATE
- || (OPCODE)o->op_targ == OP_DBSTATE))) {
+ if (type == OP_NEXTSTATE || type == OP_DBSTATE) {
cop_free((COP*)o);
}
- if (type == OP_NULL)
- type = (OPCODE)o->op_targ;
-
op_clear(o);
FreeOp(o);
#ifdef DEBUG_LEAKING_SCALARS