STATIC OP *sols_pp(pTHX) {
dSP;
- dMARK;
SV *cb;
int i, items;
cb = *svp;
}
- ENTER;
- SAVETMPS;
-
- PUSHMARK(MARK);
-
- items = call_sv(cb, G_ARRAY);
-
- SPAGAIN;
- for (i = 0; i < items; ++i)
- SvREFCNT_inc(SP[-i]);
+ XPUSHs(cb);
PUTBACK;
- FREETMPS;
- LEAVE;
-
- return NORMAL;
+ return CALL_FPTR(PL_ppaddr[OP_ENTERSUB])(aTHX);
}
/* --- XS ------------------------------------------------------------------ */
if (SvROK(cb)) {
cb = SvRV(cb);
if (SvTYPE(cb) >= SVt_PVCV) {
+ sub_op_init(&c);
c.name = SvPV_const(name, c.namelen);
c.check = sols_check;
c.ud = SvREFCNT_inc(cb);