AV * savearray;
AV * argarray;
I32 olddepth;
- PAD *oldcomppad; /* the *current* PL_comppad */
PAD *prevcomppad; /* the caller's PL_comppad */
};
cx->blk_sub.argarray = newAV(); \
av_extend(cx->blk_sub.argarray, fill); \
AvREIFY_only(cx->blk_sub.argarray); \
- CX_CURPAD_SV(cx->blk_sub, 0) = MUTABLE_SV(cx->blk_sub.argarray); \
+ (AvARRAY(MUTABLE_AV( \
+ PadlistARRAY(CvPADLIST(cx->blk_sub.cv))[ \
+ CvDEPTH(cx->blk_sub.cv)])))[0] = \
+ MUTABLE_SV(cx->blk_sub.argarray); \
} \
else { \
CLEAR_ARGARRAY(cx->blk_sub.argarray); \
PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv));
if (CxHASARGS(cx))
{
- CX_CURPAD_SAVE(cx->blk_sub);
-
/* cx->blk_sub.argarray has no reference count, so we
need something to hang on to our argument array so
that cx->blk_sub.argarray does not end up pointing
defavp = &GvAV(PL_defgv);
cx->blk_sub.savearray = *defavp;
*defavp = MUTABLE_AV(SvREFCNT_inc_simple_NN(av));
- CX_CURPAD_SAVE(cx->blk_sub);
cx->blk_sub.argarray = av;
items = SP - MARK;
cx->blk_sub.savearray = GvAV(PL_defgv);
GvAV(PL_defgv) = MUTABLE_AV(SvREFCNT_inc_simple(av));
- CX_CURPAD_SAVE(cx->blk_sub);
cx->blk_sub.argarray = av;
}
ncx->blk_sub.argarray = NULL;
ncx->blk_sub.savearray = NULL;
}
- ncx->blk_sub.oldcomppad = (PAD*)ptr_table_fetch(PL_ptr_table,
- ncx->blk_sub.oldcomppad);
ncx->blk_sub.prevcomppad = (PAD*)ptr_table_fetch(PL_ptr_table,
ncx->blk_sub.prevcomppad);
break;