and not just lock, vec and substr. Using a regular leavesub op causes
the return values to be copied. There is no need for that, so this
commit changes them all to use leavesublv.
new ATTRSUB. */
(void)core_prototype((SV *)cv, name, code, &opnum);
if (ampable) {
- if (opnum == OP_VEC || opnum == OP_LOCK
- || opnum == OP_SUBSTR)
- CvLVALUE_on(cv);
+ CvLVALUE_on(cv);
newATTRSUB(oldsavestack_ix,
newSVOP(
OP_CONST, 0,
)
);
assert(GvCV(gv) == cv);
- if (opnum == OP_LOCK)
+ if (opnum != OP_VEC && opnum != OP_SUBSTR)
CvLVALUE_off(cv); /* Now *that* was a neat trick. */
LEAVE;
PL_parser = oldparser;